datafacer ShapeFile { service setFileName(text shp_name); service setCrsEPSG(text epsgCode); service view(); service boolean hasNextRecord(); service ShpRecord getNextRecord(); service addShpRecord(ShpRecord sr); service defineTextAttribute(text attrName); service defineRealAttribute(text attrName); service defineIntAttribute(text attrName); service definePointAttribute(text attrName); service defineLineAttribute(text attrName); service definePolygonAttribute(text attrName); service defineBooleanAttribute(text attrName); service buildSchema(text schemaName); service ShpRecord createEmptyShpRecord(); service saveAsShp(text filename); } datafacer Position { service addTo_xy(real dx, real dy); service real getX(); service real getY(); service setX(real x); service setY(real y); service real distToLine(Polyline line); service real distToPos(Position otherPos); } datafacer MPoints { service int nbPoints(); service Position getPoint(int index); service addPoint(Position point); } datafacer Polyline{ service addTo_xy(real dx, real dy); service int nbLines(); service list[Position] getLine(int index); service addLine(list[Position] line); service MPoints intersection(Polyline line); } datafacer MPolygon{ service addTo_xy(real dx, real dy); service int nbPolygons(); service list[Position] getPositions(int index); service addPolygon(list[Position] lpos); service Position getCentroid(); } datafacer ShpRecord { service text getTextAttribute(text atName); service real getRealAttribute(text atName); service int getIntAttribute(text atName); service boolean getBooleanAttribute(text atName); service setIntAttribute(text attrName, int value); service setRealAttribute(text attrName, real value); service setBooleanAttribute(text attrName, boolean value); service setTextAttribute(text attrName, text value); service Polyline getPolyline(); service setPolyline(Polyline pol); service MPolygon getMPolygon(); service setMPolygon(MPolygon pol); service ShpRecord getClone(); service setMPolygonBuffer(ShpRecord sr, real distance); } datafacer KmlExport { service setShapeFile(ShapeFile sf); service addLabel(real xpos, real ypos, real height, text beginDate, text endDate, text name, text description, text styleName); service addModel(real xpos, real ypos, real orientation, real scale, text beginDate, text endDate, text daefile); service addRecord(text caption, text beginDate, text endDate, ShpRecord sr); service addStyledRecord(text caption, text beginDate, text endDate, ShpRecord sr, text styleName); service addStyledRecordEx(text caption, text beginDate, text endDate, ShpRecord sr, text styleName, real height); service addStyledRecordEx2(text caption, text beginDate, text endDate, ShpRecord sr, text styleName, real height, real maxheight); service saveAsKml(text fileName); service saveAsKmz(text fileName); // color codes : ABGR hexa service defStyle(text name, real lineWidth, text lineColor, text fillColor); service defIconStyle(text name, text iconFile, real scale, real heading); }