📄 linkpoly.c
字号:
if (buffer == NULL) return -1; /* Memory allocation error */ buffercount=0; buffercount += BufferedWriteLinkPolyHeader(&buffer[buffercount]); buffercount += BufferedWriteInteger(&buffer[buffercount], RENDERTYPE_LATLON); buffercount += BufferedWriteInteger(&buffer[buffercount], ltype); buffercount += BufferedWriteInteger(&buffer[buffercount], numberOflatlon); for(i=0;i < numberOflatlon; i++) { buffercount += BufferedWriteFloat(&buffer[buffercount], (float)latlon[i]); } buffercount += BufferedWriteInteger(&buffer[buffercount], unit); buffercount += BufferedWriteInteger(&buffer[buffercount], nsegs); buffercount += BufferedWriteLinkArgs(&buffer[buffercount], linkArgs); retval = WriteChars(linkSocket, buffer,buffercount); free(buffer); return retval;}int BufferedWriteLinkPolyLatLon2(LinkSocket *linkSocket, int ltype, int numberOflatlon, /*size of lat or lon array*/ double lat[], double lon[], /*These 2 arrays are of equal size*/ int unit, int nsegs, LinkArgs *linkArgs){ int i; int buffercount; char *buffer; int retval; /* buffercount corresponds to data being written in bytes below. */ buffercount = lPOLY_HEADER + /* Bytes used by Header*/ N_BYTES_PER_INTEGER + /*Bytes used by GRAPHIC_TYPE. It is an Integer*/ N_BYTES_PER_INTEGER + /*Bytes used by RENDERTYPE identifier*/ 4*N_BYTES_PER_INTEGER + /*Bytes used by numberOflatlon, unit, nsegs,ltype*/ N_BYTES_PER_FLOAT*numberOflatlon + LinkSizeOfLinkArgs(linkArgs); buffer = (char *)malloc(buffercount); if (buffer == NULL) return -1; /* Memory allocation error */ buffercount=0; buffercount += BufferedWriteLinkPolyHeader(&buffer[buffercount]); buffercount += BufferedWriteInteger(&buffer[buffercount], RENDERTYPE_LATLON); buffercount += BufferedWriteInteger(&buffer[buffercount], ltype); buffercount += BufferedWriteInteger(&buffer[buffercount], numberOflatlon + numberOflatlon); for(i=0;i < numberOflatlon; i++) { buffercount += BufferedWriteFloat(&buffer[buffercount], (float)lat[i]); buffercount += BufferedWriteFloat(&buffer[buffercount], (float)lon[i]); } buffercount += BufferedWriteInteger(&buffer[buffercount], unit); buffercount += BufferedWriteInteger(&buffer[buffercount], nsegs); buffercount += BufferedWriteLinkArgs(&buffer[buffercount], linkArgs); retval = WriteChars(linkSocket, buffer,buffercount); free(buffer); return retval;}int BufferedWriteLinkPolyXY(LinkSocket *linkSocket, int numberOfXY, int XY[], LinkArgs *linkArgs){ int buffercount; char *buffer; int retval,i; /* buffercount corresponds to data being written in bytes below. */ buffercount = lPOLY_HEADER + /* Bytes used by Header*/ N_BYTES_PER_INTEGER + /*Bytes used by GRAPHIC_TYPE. It is an Integer*/ N_BYTES_PER_INTEGER + /*Bytes used by RENDERTYPE identifier*/ N_BYTES_PER_INTEGER + /*byts used by numberOfXY*/ 2*N_BYTES_PER_INTEGER + /*Bytes used by numberofxy and coordmode*/ numberOfXY*N_BYTES_PER_INTEGER + /*bytes used by xy points*/ LinkSizeOfLinkArgs(linkArgs); buffer = (char *)malloc(buffercount); if (buffer == NULL) return -1; /* Memory allocation error */ buffercount=0; buffercount += BufferedWriteLinkPolyHeader(&buffer[buffercount]); buffercount += BufferedWriteInteger(&buffer[buffercount], RENDERTYPE_XY); buffercount += BufferedWriteInteger(&buffer[buffercount], numberOfXY); for(i=0;i < numberOfXY; i++) { buffercount += BufferedWriteInteger(&buffer[buffercount], XY[i]); } buffercount += BufferedWriteLinkArgs(&buffer[buffercount], linkArgs); retval = WriteChars(linkSocket, buffer,buffercount); free(buffer); return retval;}int BufferedWriteLinkPolyXY2(LinkSocket *linkSocket, int numberOfXY, /*count of elements in X or Y array*/ int X[], int Y[], /* These 2 arrays are of equal size*/ LinkArgs *linkArgs){ int buffercount; char *buffer; int retval,i; /* buffercount corresponds to data being written in bytes below. */ buffercount = lPOLY_HEADER + /* Bytes used by Header*/ N_BYTES_PER_INTEGER + /*Bytes used by GRAPHIC_TYPE. It is an Integer*/ N_BYTES_PER_INTEGER + /*Bytes used by RENDERTYPE identifier*/ N_BYTES_PER_INTEGER + /*byts used by numberOfXY*/ 2*N_BYTES_PER_INTEGER + /*Bytes used by numberofxy and coordmode*/ numberOfXY*N_BYTES_PER_INTEGER + /*bytes used by xy points*/ LinkSizeOfLinkArgs(linkArgs); buffer = (char *)malloc(buffercount); if (buffer == NULL) return -1; /* Memory allocation error */ buffercount=0; buffercount += BufferedWriteLinkPolyHeader(&buffer[buffercount]); buffercount += BufferedWriteInteger(&buffer[buffercount], RENDERTYPE_XY); buffercount += BufferedWriteInteger(&buffer[buffercount], numberOfXY + numberOfXY); for(i=0;i < numberOfXY; i++) { buffercount += BufferedWriteInteger(&buffer[buffercount], X[i]); buffercount += BufferedWriteInteger(&buffer[buffercount], Y[i]); } buffercount += BufferedWriteLinkArgs(&buffer[buffercount], linkArgs); retval = WriteChars(linkSocket, buffer,buffercount); free(buffer); return retval;}int BufferedWriteLinkPolyOffset(LinkSocket *linkSocket, double lat, double lon, int numberOfXY, int XY[], int CoordMode, LinkArgs *linkArgs){ int buffercount; char *buffer; int retval,i; /* buffercount corresponds to data being written in bytes below. */ buffercount = lPOLY_HEADER + /* Bytes used by Header*/ N_BYTES_PER_INTEGER + /*Bytes used by GRAPHIC_TYPE. It is an Integer*/ N_BYTES_PER_INTEGER + /*Bytes used by RENDERTYPE identifier*/ 2*N_BYTES_PER_FLOAT + /*Bytes used by lat and lon*/ 2*N_BYTES_PER_INTEGER + /*Bytes used by numberofxy and coordmode*/ numberOfXY*N_BYTES_PER_INTEGER + /*bytes used by xy points*/ LinkSizeOfLinkArgs(linkArgs); buffer = (char *)malloc(buffercount); if (buffer == NULL) return -1; /* Memory allocation error */ buffercount=0; buffercount += BufferedWriteLinkPolyHeader(&buffer[buffercount]); buffercount += BufferedWriteInteger(&buffer[buffercount], RENDERTYPE_OFFSET); buffercount += BufferedWriteFloat(&buffer[buffercount], lat); buffercount += BufferedWriteFloat(&buffer[buffercount], lon); buffercount += BufferedWriteInteger(&buffer[buffercount], numberOfXY); for(i=0;i < numberOfXY; i++) { buffercount += BufferedWriteInteger(&buffer[buffercount], XY[i]); } buffercount += BufferedWriteInteger(&buffer[buffercount], CoordMode); buffercount += BufferedWriteLinkArgs(&buffer[buffercount], linkArgs); retval = WriteChars(linkSocket, buffer,buffercount); free(buffer); return retval;}int BufferedWriteLinkPolyOffset2(LinkSocket *linkSocket, double lat, double lon, int numberOfXY, /*count of elements in X or Y array*/ int X[], int Y[], int CoordMode, LinkArgs *linkArgs){ int buffercount; char *buffer; int retval,i; /* buffercount corresponds to data being written in bytes below. */ buffercount = lPOLY_HEADER + /* Bytes used by Header*/ N_BYTES_PER_INTEGER + /*Bytes used by GRAPHIC_TYPE. It is an Integer*/ N_BYTES_PER_INTEGER + /*Bytes used by RENDERTYPE identifier*/ 2*N_BYTES_PER_FLOAT + /*Bytes used by lat and lon*/ 2*N_BYTES_PER_INTEGER + /*Bytes used by numberofxy and coordmode*/ numberOfXY*N_BYTES_PER_INTEGER + /*bytes used by xy points*/ LinkSizeOfLinkArgs(linkArgs); buffer = (char *)malloc(buffercount); if (buffer == NULL) return -1; /* Memory allocation error */ buffercount=0; buffercount += BufferedWriteLinkPolyHeader(&buffer[buffercount]); buffercount += BufferedWriteInteger(&buffer[buffercount], RENDERTYPE_OFFSET); buffercount += BufferedWriteFloat(&buffer[buffercount], lat); buffercount += BufferedWriteFloat(&buffer[buffercount], lon); buffercount += BufferedWriteInteger(&buffer[buffercount], numberOfXY + numberOfXY); for(i=0;i < numberOfXY; i++) { buffercount += BufferedWriteInteger(&buffer[buffercount], X[i]); buffercount += BufferedWriteInteger(&buffer[buffercount], Y[i]); } buffercount += BufferedWriteInteger(&buffer[buffercount], CoordMode); buffercount += BufferedWriteLinkArgs(&buffer[buffercount], linkArgs); retval = WriteChars(linkSocket, buffer,buffercount); free(buffer); return retval;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -