2012-05-24 41 views
1

我下载了一个KML文件,并试图将其加载到我的项目中,该项目使用Google maps API。将KML文件加载到Google地图中API

当我加载此KML时,我看不到任何结果。其他KML文件正常工作。

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Google Maps JavaScript API v3 Example: KmlLayer KML</title> 
<link href="/maps/documentation/javascript/examples/default.css" rel="stylesheet"  type="text/css" /> 
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?  sensor=false"></script> 
<script type="text/javascript" src="http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script> 
<style type="text/css"> 
    html { height: 100% } 
    body { height: 100%; margin: 0; padding: 0 } 
    #map_canvas { height: 100% } 
</style> 

<script type="text/javascript"> 
function initialize() { 
var chicago = new google.maps.LatLng(41.875696,-87.624207); 
var myOptions = { 
zoom: 2, 
center: chicago, 
mapTypeId: google.maps.MapTypeId.ROADMAP } 
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var geoXml = new geoXML3.parser({map: map, singleInfoWindow: true}); 
    geoXml.parse('doc2.kml'); } 
</script> 
</head> 
<body onload="initialize()"> 
<div id="map_canvas"></div> 
</body> 
</html> 

这是KML文件。我认为它们与我发现的其他KML文件看起来不同。

<?xml version="1.0" encoding="UTF-8"?> 
    <kml xmlns="http://earth.google.com/kml/2.0"> 
    <Document> 
    <name>Continents.kmz</name> 
    <Style id="khStyle646"> 
    <LineStyle id="khLineStyle649"> 
    <antialias>0</antialias> 
    </LineStyle> 
    <PolyStyle id="khPolyStyle648"> 
     <fill>0</fill> 
     <outline>0</outline> 
    </PolyStyle> 
    <IconStyle id="khIconStyle650"> 
     <Icon> 
     <href>root://icons/palette-3.png</href> 
     <x>160</x> 
     <y>128</y> 
     <w>32</w> 
     <h>32</h> 
     </Icon> 
    </IconStyle> 
    </Style> 
    <Style id="khStyle653"> 
    <LineStyle id="khLineStyle656"> 
     <antialias>0</antialias> 
    </LineStyle> 
    <PolyStyle id="khPolyStyle655"> 
     <fill>0</fill> 
     <outline>0</outline> 
    </PolyStyle> 
    <IconStyle id="khIconStyle657"> 
     <Icon> 
     <href>root://icons/palette-3.png</href> 
     <x>96</x> 
     <y>160</y> 
     <w>32</w> 
     <h>32</h> 
     </Icon> 
    </IconStyle> 
    </Style> 
    <Folder> 
    <description>All information from www.wikipedia.org</description> 
    <name>Continents</name> 
    <Placemark> 
     <LookAt> 
     <longitude>69.34975938772639</longitude> 
     <latitude>-85.51850370658478</latitude> 
     <range>4660494.527334587</range> 
     <tilt>1.489515791197339</tilt> 
     <heading>-94.23630609027376</heading> 
     </LookAt> 
     <styleUrl>#khStyle653</styleUrl> 
     <Point> 
     <coordinates>80.29122647597791,-85.36965069939549,0</coordinates> 
     </Point> 
    </Placemark> 
    <Placemark> 
     <name>North America</name> 
     <LookAt> 
     <longitude>-92.38030591736974</longitude> 
     <latitude>41.60040029662515</latitude> 
     <range>6572383.886462871</range> 
     <tilt>1.489515791197389</tilt> 
     <heading>5.091613582461503</heading> 
     </LookAt> 
     <styleUrl>#khStyle653</styleUrl> 
     <Point> 
     <coordinates>-98.11233984563178,45.32023029701742,0</coordinates> 
     </Point> 
    </Placemark> 
    <Placemark> 
      <name>South America</name> 
     <LookAt> 
     <longitude>-62.99013711154147</longitude> 
     <latitude>-21.48589474193573</latitude> 
     <range>7218561.25099345</range> 
     <tilt>1.489515791197348</tilt> 
     <heading>14.48258802805428</heading> 
     </LookAt> 
     <styleUrl>#khStyle653</styleUrl> 
     <Point> 
     <coordinates>-58.60850163074399,-15.26868557309036,0</coordinates> 
     </Point> 
    </Placemark> 
    <Placemark> 
     <description>The primary use of the term Oceania is to describe a continental region (like Europe or Africa) that lies between Asia and the Americas, with Australia as the major land mass. The name Oceania is used, rather than Australia, because unlike the other continental groupings, it is the ocean rather than the continent that links the nations together. Oceania is the smallest continental grouping in land area and the second smallest, after Antarctica, in population.</description> 
     <name>Australasia/Oceania</name> 
     <LookAt> 
     <longitude>149.9280610479762</longitude> 
     <latitude>-19.96203640214011</latitude> 
     <range>5948094.214726813</range> 
     <tilt>1.489515791197347</tilt> 
     <heading>-3.233441994279863</heading> 
     </LookAt> 
     <styleUrl>#khStyle653</styleUrl> 
     <Point> 
     <coordinates>153.0281098590235,-19.81023956617555,0</coordinates> 
     </Point> 
    </Placemark> 
    <Placemark> 
     <name>Europe</name> 
     <LookAt> 
     <longitude>13.36662252078061</longitude> 
     <latitude>47.49923408453745</latitude> 
     <range>2926553.150350343</range> 
     <tilt>1.489515791197361</tilt> 
     <heading>5.315432286214211</heading> 
     </LookAt> 
     <styleUrl>#khStyle653</styleUrl> 
     <Point> 
     <coordinates>7.703642655915047,48.19165017141015,0</coordinates> 
     </Point> 
    </Placemark> 
    <Placemark> 
     <name>Asia</name> 
     <LookAt> 
     <longitude>88.44296071080763</longitude> 
     <latitude>29.02076366275569</latitude> 
     <range>5948094.214726811</range> 
     <tilt>1.489515791197341</tilt> 
     <heading>4.339173834203948</heading> 
     </LookAt> 
     <styleUrl>#khStyle653</styleUrl> 
     <Point> 
     <coordinates>88.87769612972068,35.90237786706015,0</coordinates> 
     </Point> 
    </Placemark> 
    <Placemark> 
     <name>Africa</name> 
     <LookAt> 
     <longitude>20.16987332895207</longitude> 
     <latitude>1.368208952904757</latitude> 
     <range>8150113.588222869</range> 
     <tilt>1.489515791197357</tilt> 
     <heading>-4.536422889821256</heading> 
     </LookAt> 
     <styleUrl>#khStyle646</styleUrl> 
     <Style> 
     <IconStyle> 
      <Icon> 
      <href>root://icons/palette-3.png</href> 
      <x>96</x> 
      <y>160</y> 
      <w>32</w> 
      <h>32</h> 
      </Icon> 
     </IconStyle> 
     </Style> 
     <Point> 
     <coordinates>21.06451559663505,6.103658771972451,0</coordinates> 
     </Point> 
    </Placemark> 
    </Folder> 
</Document> 
</kml> 

我认为该文件与Google地球相关。可以将它转换为Google地图KML吗?你能告诉我为什么它不起作用吗?

问候,

贝纳

回答

2

所以你KML文件相当远过时。看看命名空间,它是一个KML 2.0文件,它从来都不是一个编纂的规范。 KML 2.1是最早版本,KML 2.2是最新版本。所以有很多元素是不受支持的,比如antialias和x,y等等。另外一些元素不合适。您可以尝试根据模式验证它:http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd

这会让您知道哪些元素不受支持,哪些元素不符合规则。你可以使用一个验证器,如Oxygen,它有一个免费的试用版。

此外,您正在使用geoxml3这是一个开源项目,而不是使用KMLLayer,它是Google的地图KML渲染器。所以你也可以向geoxml3的人寻求帮助。

1

也许这个链接可以帮助你,有的在KML元素不支持:

https://developers.google.com/kml/documentation/kmlelementsinmaps

+0

我可以使用任何工具将此文件更改为KML吗? – user1365697

+0

我发现这个文件与Google地球相关我是否也可以将它用于Google地图API? http://serc.carleton.edu/sp/library/google_earth/kml_examples_from_google.html – user1365697

+0

工具:http://download.cnet.com/Google-Earth-KMZ-or-KML-to-GPS-Converter/3000- 12940_4-10619131.html – lfergon

相关问题