我想知道如何以编程方式将已经创建的kml文件加载到mapview中?
kml文件存储在SD卡中。我已经设置了mapActivity。
我是否只是SAX解析kml文件并使用draw方法创建边界?
这是手机上存储的kml文件的片段
<?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>
<name>TY09-46.kml</name>
<open>1</open>
<Style id="sn_ylw-pushpin594">
<LineStyle>
<color>ff0000ff</color>
</LineStyle>
<PolyStyle>
<fill>0</fill>
</PolyStyle>
</Style>
<Folder>
<name>PLOTS</name>
<Placemark>
<name>4</name>
<styleUrl>#m_ylw-pushpin</styleUrl>
<ExtendedData>
<SchemaData schemaUrl="#PLOTS">
<SimpleData name="PLOT">4</SimpleData>
<SimpleData name="SUB">43376H-3</SimpleData>
<SimpleData name="RADIUS">10</SimpleData>
<SimpleData name="DATE"></SimpleData>
</SchemaData>
</ExtendedData>
<Point>
<coordinates>-8.153864327053929,52.6070098595707,0</coordinates>
</Point>
</Placemark>
<Schema name="PLOTS" id="PLOTS">
<SimpleField name="Name" type="string"></SimpleField>
<SimpleField name="Description" type="string"></SimpleField>
<SimpleField name="NAME" type="string"></SimpleField>
<SimpleField name="PLOT" type="string"></SimpleField>
<SimpleField name="SUB" type="string"></SimpleField>
<SimpleField name="RADIUS" type="string"></SimpleField>
<SimpleField name="DATE" type="string"></SimpleField>
</Schema>
</Folder>
<Folder>
<name>SP</name>
<Placemark>
<styleUrl>#sn_ylw-pushpin595</styleUrl>
<ExtendedData>
<SchemaData schemaUrl="#SP">
<SimpleData name="SP">TY09-46</SimpleData>
<SimpleData name="NAME">KILMORE</SimpleData>
<SimpleData name="COMPARTMENT">43376H</SimpleData>
<SimpleData name="Area(ha)">4.77</SimpleData>
</SchemaData>
</ExtendedData>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-8.15152443718635,52.6069634555448,0 -8.15167900295852,52.60657535116457,0
-8.151997904722112,52.60666572906325,0 -8.152255500913864,52.60666952493089,0
-8.152465748159944,52.60670226784825,0 -8.152723330249888,52.60670193605101,0
-8.153001520996146,52.60677998372832,0 -8.153272487636542,52.60673011345997,0
-8.153604662035111,52.60673793654373,0 -8.153855465839483,52.60673761107371,0
-8.154113091575701,52.6067496561955,0 -8.154316446061474,52.60674939146879,0
-8.154526680695481,52.60677800407948,0 -8.1547909107514,52.6067405191218,0
-8.155129659842043,52.60669055601552,0 -8.155665012923913,52.60664858708871,0
-8.155733134253261,52.60674341087193,0 -8.156426186040738,52.60720468431717,0
-8.156426744752794,52.60736149687183,0 -8.156521747808993,52.60739025804426,0
-8.156589327562957,52.60733239541656,0 -8.156691359613109,52.60743130047566,0
-8.157027610874598,52.60752553463963,0 -8.157125642906603,52.60761798596194,0
-8.15722677605071,52.60792549492925,0 -8.15739480599737,52.60838296370868,0
-8.157313665670758,52.60861291590776,0 -8.156795853691008,52.60870383700606,0
-8.156713746651064,52.60870381194006,0 -8.156458403249635,52.60863659457699,0
-8.156152800676889,52.60848018453881,0 -8.156112216224379,52.60850499801612,0
-8.156281949476131,52.60857905418559,0 -8.156160049140089,52.60861222825434,0
-8.155949863296714,52.60860012514034,0 -8.155867521806488,52.60831962030564,0
-8.155772502523375,52.60828673196865,0 -8.155684554771863,52.60833636755914,0
-8.155494969642607,52.60839851652946,0 -8.155433654194548,52.60831193703474,0
-8.155250701618023,52.60833281026391,0 -8.154734951121416,52.60817254511656,0
-8.154375157507616,52.60802445458578,0 -8.154015337366687,52.60786810966418,0
-8.153703186916681,52.60777360178353,0 -8.153316199110874,52.60760078331938,0
-8.152623934011123,52.60735820397802,0 -8.152115040280407,52.60721442523652,0
-8.151944890877582,52.60701656365475,0 -8.151741221358709,52.60692603807063,0
-8.151788884937805,52.60698787699173,0 -8.151809448800298,52.60705387728972,0
-8.151762056143543,52.60707044467551,0 -8.151646678543326,52.60702932577333,0
-8.15152443718635,52.6069634555448,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Schema name="Subs" id="Subs">
<SimpleField name="Name" type="string"></SimpleField>
<SimpleField name="Description" type="string"></SimpleField>
<SimpleField name="COMPARTMENT" type="string"></SimpleField>
<SimpleField name="SUB" type="string"></SimpleField>
<SimpleField name="Area(ha)" type="string"></SimpleField>
<SimpleField name="SPECIE" type="string"></SimpleField>
<SimpleField name="PLAN_YEAR" type="int"></SimpleField>
</Schema>
</Folder>
<Folder>
<name>PHOTOS</name>
<open>1</open>
<GroundOverlay>
<name>TY09-46 COM.43376H</name>
<color>a3ffffff</color>
<Icon>
<href>Z:/Alex/Maps_and_layers/Ireland/Coillte forest/S2
/TYPPERARY/TY09-46/Layers/Google/TY09-46-2.TIF</href>
<viewBoundScale>0.75</viewBoundScale>
</Icon>
<altitudeMode>clampToGround</altitudeMode>
<gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
<LatLonBox>
<north>52.61133873114665</north>
<south>52.60348773114665</south>
<east>-8.145864564106052</east>
<west>-8.163791564106058</west>
</LatLonBox>
</GroundOverlay>
</Folder>
</Document>
</kml>
我是一名学生,并且是android的新手,因此对您的帮助将不胜感激
谢谢
最佳答案
您可以使用SAXParser之类的方法解析KML文件,并获取航点的坐标。
然后,您可以在MapActivity上绘制它们:Link