如何在Android的mapView上使用kml文件

问题描述

| 我想知道如何以编程方式将已经创建的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,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上绘制它们:链接     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...