2015-09-12 28 views
1

我想在GoogleMap中爲地標設置填充顏色,但它不起作用。我使用的KML從fill polygons in google map/earth 和我的結果是: http://i.imgur.com/ed27B0I.jpg?1在Android中的KML文件中設置地標的填充顏色

我的代碼是:

KmlLayer kmlLayer = new KmlLayer(googleMap,R.raw.test,getActivity().getApplication()); 
kmlLayer.addLayerToMap(); 

KML文件是:

<?xml version="1.0" encoding="utf-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document> 
    <Style id="s1"> 
     <LineStyle> 
     <color>7f0000ff</color> 
     <width>4</width> 
     </LineStyle> 
     <PolyStyle> 
     <color>7f0000ff</color> 
     <colorMode>normal</colorMode> 
     <fill>1</fill> 
     <outline>1</outline> 
     </PolyStyle> 
    </Style> 
    <name>All isolation countries</name> 
    <description>All isolation countries</description> 
    <Placemark> 
     <styleUrl>#s1</styleUrl> 
     <name>Indonesia</name> 
     <Polygon> 
     <tessellate>1</tessellate> 
     <extrude>1</extrude> 
     <altitudeMode>clampedToGround</altitudeMode> 
     <outerBoundaryIs> 
      <LinearRing> 
      <coordinates>102.4918975830078,1.259721994400024,0 102.3088989257813,1.420554995536804,0 102.1374969482422,1.448055028915405,0 102.0785980224609,1.485000014305115,0 101.9944000244141,1.600000023841858,0 102.0065994262695,1.619166970252991,0 102.4349975585938,1.527500033378601,0 102.4779968261719,1.502221941947937,0 102.4954986572266,1.436308026313782,0 102.504997253418,1.273888945579529,0 102.4918975830078,1.259721994400024,0</coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
     </Polygon> 
    </Placemark> 
    <Placemark> 
     <styleUrl>#s1</styleUrl> 
     <name>Ecuador</name> 
     <Polygon> 
     <tessellate>1</tessellate> 
     <extrude>1</extrude> 
     <altitudeMode>clampedToGround</altitudeMode> 
     <outerBoundaryIs> 
      <LinearRing> 
      <coordinates>-90.61167907714844,-0.3755556046962738,0 -90.77166748046875,-0.344166785478592,0 -90.87222290039063,-0.2652778923511506,0 -90.79332733154297,-0.149444505572319,0 -90.77362060546876,-0.1550000011920929,0 -90.58556365966797,-0.2455555945634842,0 -90.55029296875,-0.3091666996479035,0 -90.61167907714844,-0.3755556046962738,0</coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
     </Polygon> 
    </Placemark> 
    </Document> 
    </kml> 

回答

0

首先,你需要你錯過了哪些標籤。試試這個更新代碼

<?xml version="1.0" encoding="utf-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document> 
    <StyleMap id="s1"> 
     <Pair> 
      <key>normal</key> 
      <styleUrl>#s1-temp</styleUrl> 
     </Pair> 
     <Pair> 
      <key>highlight</key> 
      <styleUrl>#s1-temp</styleUrl> 
     </Pair> 
    </StyleMap> 
    <Style id="s1-temp"> 
     <IconStyle> 
      <scale>1.0</scale> 
      <Icon> 
       <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href> 
      </Icon> 
     </IconStyle> 
     <PolyStyle> 
      <color>7f0000ff</color> 
      <outline>0</outline> 
     </PolyStyle> 
    </Style> 
    <name>All isolation countries</name> 
    <description>All isolation countries</description> 
    <Placemark> 
     <styleUrl>#s1-temp</styleUrl> 
     <name>Indonesia</name> 
     <Polygon> 
     <tessellate>1</tessellate> 
     <extrude>1</extrude> 
     <altitudeMode>clampedToGround</altitudeMode> 
     <outerBoundaryIs> 
      <LinearRing> 
      <coordinates>102.4918975830078,1.259721994400024,0 102.3088989257813,1.420554995536804,0 102.1374969482422,1.448055028915405,0 102.0785980224609,1.485000014305115,0 101.9944000244141,1.600000023841858,0 102.0065994262695,1.619166970252991,0 102.4349975585938,1.527500033378601,0 102.4779968261719,1.502221941947937,0 102.4954986572266,1.436308026313782,0 102.504997253418,1.273888945579529,0 102.4918975830078,1.259721994400024,0</coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
     </Polygon> 
    </Placemark> 
    <Placemark> 
     <styleUrl>#s1-temp</styleUrl> 
     <name>Ecuador</name> 
     <Polygon> 
     <tessellate>1</tessellate> 
     <extrude>1</extrude> 
     <altitudeMode>clampedToGround</altitudeMode> 
     <outerBoundaryIs> 
      <LinearRing> 
      <coordinates>-90.61167907714844,-0.3755556046962738,0 -90.77166748046875,-0.344166785478592,0 -90.87222290039063,-0.2652778923511506,0 -90.79332733154297,-0.149444505572319,0 -90.77362060546876,-0.1550000011920929,0 -90.58556365966797,-0.2455555945634842,0 -90.55029296875,-0.3091666996479035,0 -90.61167907714844,-0.3755556046962738,0</coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
     </Polygon> 
    </Placemark> 
    </Document> 
</kml>` 
1

你是否瀏覽了支持的元素列表? https://developers.google.com/kml/documentation/kmlelementsinmaps

我看到您正在使用一些不受支持的元素(例如altitudeMode)。理論上講,如果你這樣做,它應該默默地失敗,但它似乎可能會影響整體結果(請參閱此issue的答案)。

我也認爲這就是爲什麼@ JeremyA1的答案可能無法正常工作,因爲StyleMap也不受支持。

無論如何,請讓我們知道您是如何解決它的,因爲這會非常有幫助。

0

刪除colorMode,從這個代碼填充和輪廓:

<PolyStyle> 
    <color>7f0000ff</color> 
    <colorMode>normal</colorMode> 
    <fill>1</fill> 
    <outline>1</outline> 
    </PolyStyle> 

它應該是這樣的:

<PolyStyle> 
    <color>7f0000ff</color> 
    </PolyStyle> 

結果是這樣的: enter image description here