Skip to content

Instantly share code, notes, and snippets.

@andreldm
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andreldm/2627f27c7055480b8b26 to your computer and use it in GitHub Desktop.
Save andreldm/2627f27c7055480b8b26 to your computer and use it in GitHub Desktop.
Mapsforge write standalone sample

A Short, Self Contained, Correct, Example for converting KML into MAP using mapsforge-writer as a library instead of a Osmosis Plugin.

The MAP file is correctly generated, but some spawned threads never finish.

In order to get this example running, you'll need:

  • mapsforge-map-writer-0.5.0-jar-with-dependencies.jar
  • osmosis-core-0.43.1.jar

References:

public class LatLong {
private double latitude;
private double longitude;
public LatLong() {
super();
}
public LatLong(double latitude, double longitude) {
super();
this.latitude = latitude;
this.longitude = longitude;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
@Override
public String toString() {
return String.format("{%s:%s}", latitude, longitude);
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.mapsforge.core.model.BoundingBox;
import org.mapsforge.map.writer.MapFileWriter;
import org.mapsforge.map.writer.RAMTileBasedDataProcessor;
import org.mapsforge.map.writer.model.MapWriterConfiguration;
import org.mapsforge.map.writer.model.ZoomIntervalConfiguration;
import org.mapsforge.map.writer.util.Constants;
import org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData;
import org.openstreetmap.osmosis.core.domain.v0_6.Node;
import org.openstreetmap.osmosis.core.domain.v0_6.OsmUser;
import org.openstreetmap.osmosis.core.domain.v0_6.Tag;
import org.openstreetmap.osmosis.core.domain.v0_6.Way;
import org.openstreetmap.osmosis.core.domain.v0_6.WayNode;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class Sample {
public static final Date date = new Date();
public static final OsmUser user = new OsmUser(1, "");
/**
* @return lastId
*/
private static long addNodes(List<LatLong> list, RAMTileBasedDataProcessor dataProcessor, long id) {
Way way = new Way(new CommonEntityData(id++, 1, date, user, 1));
way.getTags().add(new Tag("route", "ferry"));
for (LatLong l: list) {
Node node = new Node(new CommonEntityData(id++, 1, date, user, 1), l.getLatitude(), l.getLongitude());
WayNode wn = new WayNode(node.getId());
way.getWayNodes().add(wn);
dataProcessor.addNode(node);
}
dataProcessor.addWay(way);
return id;
}
private static List<LatLong> parseCoords(String coords) {
List<LatLong> list = new ArrayList<LatLong>();
String[] c = coords.split(",0");
for (String str : c) {
int index = str.indexOf(',');
String log = str.substring(0, index).trim();
String lat = str.substring(index + 1).trim();
list.add(new LatLong(Double.parseDouble(lat), Double.parseDouble(log)));
}
return list;
}
private static double[] determineBounds(List<LatLong> list) {
// Bounds array
double[] b = new double[4];
if (list == null || list.isEmpty()) {
return b;
}
b[0] = b[2] = list.get(0).getLatitude();
b[1] = b[3] = list.get(0).getLongitude();
for (LatLong latLong : list) {
double lat = latLong.getLatitude();
double lon = latLong.getLongitude();
b[0] = lat < b[0] ? lat : b[0]; // latMin
b[1] = lon < b[1] ? lon : b[1]; // lonMin
b[2] = lat > b[2] ? lat : b[2]; // latMax
b[3] = lon > b[3] ? lon : b[3]; // lonMax
}
System.out.println(String.format("minlat=%s minlon=%s maxlat=%s maxlon=%s", b[0], b[1], b[2], b[3]));
return b;
}
public static void main(String[] args) {
try {
long id = 1;
RAMTileBasedDataProcessor dataProcessor;
String expression;
NodeList nodeList;
XPath xPath = XPathFactory.newInstance().newXPath();
Document doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new File("sample.kml"));
doc.getDocumentElement().normalize();
expression = "/kml/Document/Folder[name='sector']/Placemark/Polygon/outerBoundaryIs/LinearRing/coordinates";
nodeList = (NodeList) xPath.compile(expression).evaluate(doc, XPathConstants.NODESET);
if (nodeList.getLength() <= 0) {
throw new IllegalStateException("Couldn't find the node 'Sector'");
}
String coords = nodeList.item(0).getFirstChild().getNodeValue().trim();
double[] bounds = determineBounds(parseCoords(coords));
// Setup configuration
MapWriterConfiguration config = new MapWriterConfiguration();
config.setOutputFile(new File("sample.map"));
config.setWriterVersion("");
config.setFileSpecificationVersion(3);
config.loadTagMappingFile(null);
config.setDebugStrings(false);
config.setPolygonClipping(true);
config.setWayClipping(false);
config.setLabelPosition(false);
config.setSkipInvalidRelations(true);
config.setSimplification(Constants.DEFAULT_SIMPLIFICATION_FACTOR);
config.setDataProcessorType(Constants.DEFAULT_PARAM_TYPE);
config.setBboxEnlargement(Constants.DEFAULT_PARAM_BBOX_ENLARGEMENT);
config.addEncodingChoice(Constants.DEFAULT_PARAM_ENCODING);
config.setZoomIntervalConfiguration(ZoomIntervalConfiguration.getStandardConfiguration());
config.setBboxConfiguration(new BoundingBox(bounds[0], bounds[1], bounds[2], bounds[3]));
dataProcessor = RAMTileBasedDataProcessor.newInstance(config);
// Convert nodes
expression = "/kml/Document/Folder[name='units']/Placemark/LineString/coordinates";
nodeList = (NodeList) xPath.compile(expression).evaluate(doc, XPathConstants.NODESET);
System.out.println("Nodes: " + nodeList.getLength());
for (int i = 0; i < nodeList.getLength(); i++) {
coords = nodeList.item(i).getFirstChild().getNodeValue().trim();
id = addNodes(parseCoords(coords), dataProcessor, id);
}
// Write output file
if (config.getOutputFile().exists()) {
config.getOutputFile().delete();
}
dataProcessor.complete();
MapFileWriter.writeFile(config, dataProcessor);
System.out.println("Done!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<Folder>
<name>sector</name>
<Placemark>
<name>0</name>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-35.205051,-5.812799,0 -35.209073,-5.823538999999999,0 -35.218646,-5.81974,0 -35.214784,-5.809261,0 -35.208042,-5.8117,0 -35.205744,-5.812544,0 -35.205051,-5.812799,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
</Folder>
<Folder>
<name>units</name>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.211113,-5.821096,0 -35.21114,-5.821085,0 -35.211142,-5.821084,0 -35.211096,-5.820961,0 -35.21109,-5.820964,0 -35.211061,-5.820975,0 -35.211097,-5.82106,0 -35.211103,-5.821072,0 -35.211104,-5.821076,0 -35.211113,-5.821096,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.20896,-5.813315,0 -35.208907,-5.813192,0 -35.208901,-5.813176,0 -35.208879,-5.813187,0 -35.208865,-5.813193999999999,0 -35.208924,-5.813331999999999,0 -35.208927,-5.813339,0 -35.208963,-5.813322,0 -35.20896,-5.813315,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214902,-5.81511,0 -35.214988,-5.815079,0 -35.214972,-5.815036,0 -35.214962,-5.81501,0 -35.214905,-5.814861,0 -35.214821,-5.814892999999999,0 -35.21489,-5.815077,0 -35.214902,-5.81511,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213706,-5.812735,0 -35.213757,-5.812884,0 -35.213787,-5.812874,0 -35.213822,-5.812863000000001,0 -35.213818,-5.812853000000001,0 -35.21378,-5.812759,0 -35.213786,-5.812756,0 -35.21378,-5.812740999999999,0 -35.213773,-5.812743,0 -35.213763,-5.812716999999999,0 -35.213741,-5.812724,0 -35.213722,-5.81273,0 -35.213706,-5.812735,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208705,-5.818051,0 -35.20868,-5.817987000000001,0 -35.208659,-5.817933,0 -35.208628,-5.817945,0 -35.208578,-5.817963999999999,0 -35.208482,-5.817999999999999,0 -35.208448,-5.818013,0 -35.208472,-5.818082,0 -35.208484,-5.818116,0 -35.20849,-5.818134000000001,0 -35.208544,-5.818113,0 -35.208568,-5.818104,0 -35.208673,-5.818063000000001,0 -35.20868,-5.81806,0 -35.208705,-5.818051,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213842,-5.811537,0 -35.213889,-5.811662,0 -35.213932,-5.811645000000001,0 -35.213885,-5.811521999999999,0 -35.213842,-5.811537,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213614,-5.820516,0 -35.21358,-5.820418,0 -35.213408,-5.820467999999999,0 -35.213349,-5.820484,0 -35.213382,-5.820585,0 -35.213431,-5.820569999999999,0 -35.213577,-5.820527,0 -35.213614,-5.820516,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214026,-5.816815,0 -35.21385,-5.816882000000001,0 -35.213888,-5.816977,0 -35.214065,-5.816914,0 -35.214026,-5.816815,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214242,-5.818708,0 -35.214145,-5.818744,0 -35.214157,-5.818778,0 -35.21417,-5.818814,0 -35.214177,-5.818833,0 -35.21419,-5.818872,0 -35.214192,-5.818877,0 -35.21421,-5.818927,0 -35.214222,-5.818961,0 -35.214243,-5.819020999999999,0 -35.214254,-5.819051,0 -35.214263,-5.819076,0 -35.214276,-5.819113000000001,0 -35.214286,-5.819141,0 -35.214385,-5.819103,0 -35.214376,-5.819077999999999,0 -35.214242,-5.818708,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208539,-5.812815,0 -35.208542,-5.812813,0 -35.208599,-5.812787,0 -35.208666,-5.812756,0 -35.208693,-5.812743,0 -35.20868,-5.812706,0 -35.208675,-5.812691,0 -35.208669,-5.812675,0 -35.208649,-5.812683999999999,0 -35.208567,-5.812721,0 -35.208521,-5.812742,0 -35.208511,-5.812746,0 -35.208508,-5.812748,0 -35.208539,-5.812815,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.211612,-5.81222,0 -35.211633,-5.812276,0 -35.211675,-5.812260000000001,0 -35.211656,-5.812202,0 -35.211612,-5.81222,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.210319,-5.811012,0 -35.210421,-5.811324,0 -35.21044,-5.811317000000001,0 -35.210456,-5.811312,0 -35.210468,-5.811308,0 -35.210684,-5.811231,0 -35.210574,-5.810923,0 -35.210572,-5.810924,0 -35.210572,-5.810925,0 -35.210435,-5.810972,0 -35.210319,-5.811012,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.210205,-5.814843,0 -35.210191,-5.814805,0 -35.210119,-5.814607999999999,0 -35.210112,-5.814588,0 -35.20998,-5.814636,0 -35.209988,-5.814656,0 -35.21006,-5.814852,0 -35.210075,-5.814890999999999,0 -35.210165,-5.814856999999999,0 -35.210205,-5.814843,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.21397,-5.811667,0 -35.214108,-5.811617,0 -35.214094,-5.811573,0 -35.214089,-5.811575,0 -35.214055,-5.811587,0 -35.21403,-5.811596,0 -35.214021,-5.811600000000001,0 -35.213989,-5.811611000000001,0 -35.213954,-5.811623999999999,0 -35.21397,-5.811667,0
</coordinates>
</LineString>
</Placemark><Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.212001,-5.812557999999999,0 -35.211997,-5.812559,0 -35.211994,-5.812561,0 -35.211989,-5.812547,0 -35.211985,-5.812547999999999,0 -35.211888,-5.812586,0 -35.211853,-5.812599,0 -35.211851,-5.8126,0 -35.211779,-5.81263,0 -35.211771,-5.812633,0 -35.21175,-5.812642,0 -35.211724,-5.812653,0 -35.211709,-5.812659000000001,0 -35.211679,-5.812671999999999,0 -35.211619,-5.812695999999999,0 -35.211599,-5.812704999999999,0 -35.211619,-5.812758,0 -35.21165,-5.812842000000001,0 -35.211673,-5.812834,0 -35.211769,-5.812796000000001,0 -35.211889,-5.812749999999999,0 -35.212029,-5.812695999999999,0 -35.212046,-5.81269,0 -35.212001,-5.812557999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214783,-5.811065999999999,0 -35.214779,-5.811054,0 -35.214762,-5.811008000000001,0 -35.214759,-5.811,0 -35.21475,-5.810979,0 -35.214743,-5.810965999999999,0 -35.214736,-5.810951000000001,0 -35.214731,-5.810939000000001,0 -35.214725,-5.810941999999999,0 -35.214709,-5.810906000000001,0 -35.214688,-5.810915,0 -35.214707,-5.810963999999999,0 -35.214746,-5.811065999999999,0 -35.21475,-5.811077999999999,0 -35.214783,-5.811065999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214987,-5.81173,0 -35.214969,-5.811680000000001,0 -35.215067,-5.811641,0 -35.215071,-5.81164,0 -35.21506,-5.811613,0 -35.215055,-5.811600000000001,0 -35.214955,-5.811642,0 -35.214987,-5.81173,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.211172,-5.811644,0 -35.211208,-5.811746,0 -35.211274,-5.811723,0 -35.211242,-5.811641,0 -35.211233,-5.811619,0 -35.211172,-5.811644,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214729,-5.815173,0 -35.214817,-5.815141000000001,0 -35.214785,-5.815058,0 -35.214768,-5.815011,0 -35.214745,-5.814949999999999,0 -35.214735,-5.814925000000001,0 -35.21465,-5.814956,0 -35.214702,-5.815096999999999,0 -35.214721,-5.81515,0 -35.214729,-5.815173,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213652,-5.816348000000001,0 -35.213794,-5.816291999999999,0 -35.213819,-5.816282,0 -35.213785,-5.816195,0 -35.21362,-5.816262,0 -35.213648,-5.81634,0 -35.213652,-5.816348000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.211482,-5.812284000000001,0 -35.211407,-5.812317000000001,0 -35.211422,-5.812359,0 -35.211499,-5.812329000000001,0 -35.211482,-5.812284000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214232,-5.816136,0 -35.214131,-5.816173,0 -35.214193,-5.81634,0 -35.214297,-5.816303,0 -35.214232,-5.816136,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214744,-5.814153,0 -35.214678,-5.813982,0 -35.214595,-5.814012,0 -35.214658,-5.814184000000001,0 -35.214744,-5.814153,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.21344,-5.817864,0 -35.213387,-5.817882000000001,0 -35.21337,-5.817888,0 -35.213278,-5.817921,0 -35.213301,-5.817977,0 -35.21332,-5.818022,0 -35.213355,-5.818008999999999,0 -35.213397,-5.817994,0 -35.213428,-5.817983,0 -35.213483,-5.817963000000001,0 -35.21344,-5.817864,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208841,-5.818403,0 -35.208618,-5.818488999999999,0 -35.208626,-5.818513,0 -35.20866,-5.818611000000001,0 -35.208815,-5.818551,0 -35.208862,-5.818531999999999,0 -35.208886,-5.818523,0 -35.208841,-5.818403,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208723,-5.811606,0 -35.208742,-5.811665,0 -35.208767,-5.811745,0 -35.20887,-5.812074,0 -35.208914,-5.812212,0 -35.208916,-5.81222,0 -35.208927,-5.812253,0 -35.208929,-5.812260000000001,0 -35.20906,-5.812212,0 -35.209162,-5.812175,0 -35.209201,-5.812160999999999,0 -35.209192,-5.812125999999999,0 -35.209172,-5.812052,0 -35.209046,-5.811584,0 -35.209022,-5.811499,0 -35.209015,-5.811471,0 -35.208723,-5.811606,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213476,-5.815642,0 -35.213556,-5.815616000000001,0 -35.213527,-5.815528999999999,0 -35.213525,-5.815522,0 -35.213483,-5.815399,0 -35.213469,-5.815403999999999,0 -35.213432,-5.815417,0 -35.213434,-5.815423,0 -35.213398,-5.815436999999999,0 -35.213466,-5.815615,0 -35.213476,-5.815642,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.216039,-5.818387,0 -35.216036,-5.818377,0 -35.216004,-5.818279000000001,0 -35.215976,-5.818289,0 -35.215969,-5.818292,0 -35.215943,-5.818301,0 -35.215946,-5.81831,0 -35.215979,-5.818409,0 -35.216039,-5.818387,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214428,-5.812706,0 -35.214471,-5.812689,0 -35.214511,-5.812673,0 -35.2145,-5.812643,0 -35.214475,-5.812575,0 -35.214438,-5.812475,0 -35.214366,-5.812502,0 -35.214359,-5.812515,0 -35.214418,-5.812680000000001,0 -35.214428,-5.812706,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208603,-5.814974,0 -35.208639,-5.815069,0 -35.208706,-5.815043,0 -35.208718,-5.815039000000001,0 -35.208688,-5.814964,0 -35.208681,-5.814944,0 -35.208643,-5.814958000000001,0 -35.208603,-5.814974,0
</coordinates>
</LineString>
</Placemark><Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.211188,-5.821359,0 -35.211215,-5.821343999999999,0 -35.21114,-5.821160000000001,0 -35.211126,-5.821126,0 -35.211095,-5.821138,0 -35.211188,-5.821359,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.207497,-5.815063,0 -35.207502,-5.815060999999999,0 -35.207523,-5.815054,0 -35.207538,-5.815048000000001,0 -35.207516,-5.814988,0 -35.207506,-5.81496,0 -35.207462,-5.814977,0 -35.207497,-5.815063,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.218227,-5.818702000000001,0 -35.218179,-5.818569,0 -35.217865,-5.818688,0 -35.217915,-5.818822,0 -35.218227,-5.818702000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208362,-5.818464999999999,0 -35.208582,-5.81838,0 -35.208555,-5.81831,0 -35.208507,-5.818179999999999,0 -35.208501,-5.818165,0 -35.20849,-5.818134000000001,0 -35.208384,-5.818175,0 -35.208343,-5.81819,0 -35.208291,-5.818211,0 -35.208273,-5.818218,0 -35.20829,-5.818266,0 -35.208362,-5.818464999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.215173,-5.811571,0 -35.21506,-5.811613,0 -35.215071,-5.81164,0 -35.215072,-5.811643,0 -35.215186,-5.811608,0 -35.215173,-5.811571,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213126,-5.8118,0 -35.212995,-5.811848,0 -35.213091,-5.812099,0 -35.213215,-5.812054,0 -35.213126,-5.8118,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213341,-5.813217000000001,0 -35.213283,-5.813236,0 -35.213321,-5.813333,0 -35.21336,-5.813317,0 -35.213381,-5.813309,0 -35.213372,-5.813286999999999,0 -35.213367,-5.81329,0 -35.213341,-5.813217000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214823,-5.811285,0 -35.214789,-5.811181,0 -35.214751,-5.811195,0 -35.214791,-5.811297,0 -35.2148,-5.811293000000001,0 -35.214824,-5.811286,0 -35.214823,-5.811285,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208793,-5.815243000000001,0 -35.208847,-5.815224,0 -35.208835,-5.815194,0 -35.208789,-5.815208999999999,0 -35.208783,-5.815210999999999,0 -35.208793,-5.815243000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214004,-5.813259,0 -35.213987,-5.813262999999999,0 -35.213943,-5.813279,0 -35.213885,-5.813298000000001,0 -35.213897,-5.813337,0 -35.214016,-5.813295,0 -35.214004,-5.813259,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.21278,-5.81874,0 -35.212799,-5.818798,0 -35.212819,-5.81879,0 -35.212894,-5.81898,0 -35.212907,-5.819013,0 -35.212907,-5.819014,0 -35.213048,-5.818959,0 -35.213029,-5.818911,0 -35.212994,-5.818819,0 -35.212985,-5.818797,0 -35.212976,-5.818771999999999,0 -35.212939,-5.818678000000001,0 -35.212917,-5.818687,0 -35.212909,-5.818690000000001,0 -35.212881,-5.818701,0 -35.21278,-5.81874,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.21201,-5.816776,0 -35.212169,-5.816719,0 -35.212137,-5.816629,0 -35.21199,-5.816682,0 -35.211977,-5.816687,0 -35.21201,-5.816776,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.217279,-5.818918000000001,0 -35.21742,-5.818865,0 -35.217327,-5.818596,0 -35.217318,-5.81859,0 -35.21718,-5.818642,0 -35.217279,-5.818918000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.2062,-5.814616999999999,0 -35.206237,-5.814721000000001,0 -35.206261,-5.814789,0 -35.206309,-5.81477,0 -35.20634,-5.814849,0 -35.206393,-5.81483,0 -35.206383,-5.814803,0 -35.2063,-5.814579,0 -35.2062,-5.814616999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.215048,-5.818863999999999,0 -35.215073,-5.818855,0 -35.215114,-5.818840000000001,0 -35.215381,-5.81874,0 -35.215328,-5.818596,0 -35.215247,-5.818626,0 -35.215175,-5.818653,0 -35.215017,-5.818711,0 -35.214995,-5.818718,0 -35.215048,-5.818863999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.211878,-5.810956,0 -35.211843,-5.810849000000001,0 -35.211825,-5.810841,0 -35.211763,-5.81086,0 -35.211797,-5.810979,0 -35.211823,-5.810971,0 -35.211878,-5.810956,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214018,-5.811877,0 -35.214007,-5.811846,0 -35.213909,-5.811881,0 -35.213921,-5.811912,0 -35.214018,-5.811877,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214338,-5.814882,0 -35.214397,-5.815051,0 -35.214435,-5.815037000000001,0 -35.214482,-5.815019,0 -35.214473,-5.814994999999999,0 -35.214459,-5.814956,0 -35.21443,-5.814877000000001,0 -35.21442,-5.814852,0 -35.214338,-5.814882,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.20971,-5.816017,0 -35.210041,-5.81589,0 -35.210105,-5.815866,0 -35.21029,-5.815795,0 -35.210323,-5.815782,0 -35.210465,-5.815728,0 -35.210617,-5.81567,0 -35.210435,-5.815217,0 -35.21045,-5.815207,0 -35.210444,-5.815186999999999,0 -35.210356,-5.814956,0 -35.21026,-5.814992000000001,0 -35.210325,-5.815165,0 -35.210335,-5.815192,0 -35.210209,-5.815239,0 -35.210181,-5.81525,0 -35.210134,-5.815267999999999,0 -35.210115,-5.815275,0 -35.210075,-5.815289999999999,0 -35.209937,-5.815341,0 -35.209845,-5.815376,0 -35.209802,-5.815391999999999,0 -35.20978,-5.815400000000001,0 -35.209754,-5.81541,0 -35.209669,-5.815441,0 -35.209626,-5.815458,0 -35.209552,-5.815485,0 -35.209517,-5.815499,0 -35.209675,-5.815924,0 -35.20971,-5.816017,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208571,-5.813474,0 -35.208545,-5.813402,0 -35.208537,-5.813405,0 -35.208521,-5.813410999999999,0 -35.208385,-5.81346,0 -35.208362,-5.813467999999999,0 -35.208388,-5.813538999999999,0 -35.208414,-5.813529,0 -35.208449,-5.813517,0 -35.208457,-5.813514000000001,0 -35.208488,-5.813502999999999,0 -35.208548,-5.813481999999999,0 -35.208571,-5.813474,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208719,-5.815274,0 -35.208709,-5.815248,0 -35.208668,-5.815263,0 -35.208678,-5.815289999999999,0 -35.208727,-5.815421,0 -35.208768,-5.815405,0 -35.208719,-5.815274,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.209868,-5.81701,0 -35.209826,-5.8169,0 -35.209568,-5.816998,0 -35.209592,-5.817059,0 -35.209613,-5.817110999999999,0 -35.209868,-5.81701,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.212972,-5.81397,0 -35.21296,-5.813976,0 -35.212945,-5.813985,0 -35.212781,-5.814070000000001,0 -35.212701,-5.814112,0 -35.212688,-5.814119,0 -35.212658,-5.814134,0 -35.212618,-5.814155,0 -35.212551,-5.814191,0 -35.212492,-5.814222,0 -35.212555,-5.814357,0 -35.212551,-5.814358,0 -35.212585,-5.81443,0 -35.212674,-5.814394,0 -35.212698,-5.814385,0 -35.212806,-5.814341,0 -35.212896,-5.814305,0 -35.212914,-5.814298000000001,0 -35.212949,-5.814284,0 -35.213063,-5.814239,0 -35.213041,-5.814181,0 -35.213035,-5.814165,0 -35.21304,-5.814162999999999,0 -35.213037,-5.814157,0 -35.213043,-5.814155,0 -35.213006,-5.814058999999999,0 -35.212998,-5.814039,0 -35.212984,-5.814001999999999,0 -35.212972,-5.81397,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.212218,-5.811412,0 -35.212482,-5.811315,0 -35.212431,-5.811175,0 -35.212166,-5.81127,0 -35.212218,-5.811412,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214658,-5.814447,0 -35.214666,-5.814469000000001,0 -35.214753,-5.814438,0 -35.214742,-5.81441,0 -35.214689,-5.814269,0 -35.214603,-5.814301,0 -35.214658,-5.814447,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.215184,-5.810331,0 -35.215163,-5.810272,0 -35.21511,-5.810291000000001,0 -35.214933,-5.810352,0 -35.214883,-5.81037,0 -35.214906,-5.810434,0 -35.214956,-5.810415,0 -35.21496,-5.810414,0 -35.214974,-5.810409,0 -35.215037,-5.810386,0 -35.215114,-5.810357,0 -35.215127,-5.810352,0 -35.215152,-5.810343,0 -35.215184,-5.810331,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.213387,-5.813621,0 -35.213382,-5.813623,0 -35.213335,-5.813637,0 -35.213355,-5.813692,0 -35.21337,-5.813730000000001,0 -35.213388,-5.81378,0 -35.213409,-5.813834,0 -35.213419,-5.813862,0 -35.213453,-5.813851,0 -35.213467,-5.813846,0 -35.213438,-5.813765,0 -35.213387,-5.813621,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208371,-5.812908000000001,0 -35.20836,-5.812878,0 -35.208169,-5.812951,0 -35.208181,-5.812980999999999,0 -35.208371,-5.812908000000001,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208395,-5.819079999999999,0 -35.208365,-5.818995,0 -35.20836,-5.81898,0 -35.208335,-5.818908,0 -35.208317,-5.818858,0 -35.20827,-5.818876,0 -35.208212,-5.818897999999999,0 -35.208151,-5.818920999999999,0 -35.208175,-5.81899,0 -35.208183,-5.819014,0 -35.208201,-5.819063,0 -35.208229,-5.819143,0 -35.208254,-5.819133,0 -35.208309,-5.819112,0 -35.208395,-5.819079999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214571,-5.814215,0 -35.214509,-5.814045,0 -35.214428,-5.814074,0 -35.214492,-5.814244,0 -35.214571,-5.814215,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.215573,-5.816617,0 -35.215471,-5.816657,0 -35.215537,-5.816823000000001,0 -35.215637,-5.816784,0 -35.215573,-5.816617,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.215234,-5.819923,0 -35.215156,-5.819726999999999,0 -35.215131,-5.819737,0 -35.215116,-5.819743,0 -35.215041,-5.819772,0 -35.214888,-5.819832,0 -35.214906,-5.819879,0 -35.214923,-5.819924,0 -35.214928,-5.819922,0 -35.214938,-5.819948,0 -35.214969,-5.820027,0 -35.215234,-5.819923,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.208033,-5.813486,0 -35.208055,-5.813544,0 -35.208145,-5.813771,0 -35.208221,-5.813740999999999,0 -35.208242,-5.813732,0 -35.208152,-5.813501,0 -35.208131,-5.813449,0 -35.208116,-5.813454,0 -35.208033,-5.813486,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.2076,-5.812637999999999,0 -35.20761,-5.812663,0 -35.207678,-5.812838,0 -35.207747,-5.812811,0 -35.207792,-5.812795,0 -35.207782,-5.812768,0 -35.207756,-5.8127,0 -35.207742,-5.812663,0 -35.207716,-5.812594,0 -35.2076,-5.812637999999999,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.217127,-5.816387,0 -35.217117,-5.816359,0 -35.217086,-5.816271,0 -35.217061,-5.816198000000001,0 -35.217026,-5.816099,0 -35.217014,-5.816103,0 -35.216982,-5.816115,0 -35.216955,-5.816125,0 -35.216901,-5.816144999999999,0 -35.216997,-5.816405000000001,0 -35.217007,-5.816432,0 -35.217049,-5.816416,0 -35.21709,-5.816401,0 -35.217127,-5.816387,0
</coordinates>
</LineString>
</Placemark>
<Placemark>
<name>LWPolyline</name>
<LineString>
<coordinates>
-35.214489,-5.821056,0 -35.214438,-5.820918,0 -35.214406,-5.820929,0 -35.214265,-5.820980999999999,0 -35.214186,-5.82101,0 -35.214191,-5.821022,0 -35.214238,-5.821146,0 -35.214393,-5.82109,0 -35.21445,-5.821070000000001,0 -35.214489,-5.821056,0
</coordinates>
</LineString>
</Placemark>
</Folder>
</Document>
</kml>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment