2011-05-01 107 views
1

我想知道如何以编程方式将已创建的kml文件加载到mapview中? kml文件存储在SDcard中。我已经建立了一个mapActivity。 我只是SAX解析kml文件并使用draw方法创建边界? 这里是存储在手机如何在Android的mapView上使用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所以任何帮助是很大的KML文件的片段赞赏 感谢

+0

你可以分享你的代码是如何实现的呢? – jyomin 2015-12-29 17:01:04

回答

1

你可以使用类似解析KML文件一个SAXParser并获取您的方式点的坐标。

然后,你可以借鉴他们在MapActivity:Link

+0

感谢您的回复。你的意思是什么方式点? – daveH 2011-05-01 13:15:11

+0

对不起,我的意思是“获取**你的方式点的坐标**”...“方式点”是你的KML文件中的点(参见教程)。 – 2011-05-01 14:03:32

+0

谢谢,我从kml文件中获得了我想要的坐标并绘制到地图上。 – daveH 2011-05-01 23:50:20