Загрузите файл KML в API карт Google

Я загрузил файл KML и попытался загрузить его в свой проект, который использует API карт Google.

Когда я загружаю этот 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 Earth. Можно ли преобразовать его в Google Maps KML? Не могли бы вы посоветовать мне, почему не работает?

С уважением,

Йосси


person user1365697    schedule 24.05.2012    source источник


Ответы (2)


Итак, ваш KML-файл довольно сильно устарел. Если посмотреть на пространство имен, это файл KML 2.0, который никогда не был кодифицированной спецификацией. KML 2.1 была самой ранней версией, KML 2.2 - текущей версией. Так что есть много неподдерживаемых элементов, таких как сглаживание, x, y и т. Д. Плюс некоторые элементы вышли из строя. Вы можете попробовать проверить его по схеме: http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd

Это даст вам представление о том, какие элементы не поддерживаются, а какие вышли из строя. Вы можете использовать валидатор, например Oxygen, у которого есть бесплатная пробная версия.

Кроме того, вы используете geoxml3, проект с открытым исходным кодом, а не KmlLayer, который является средством визуализации Google KML для карт. Так что вы могли бы попросить помощи у людей geoxml3.

person Mano Marks    schedule 24.05.2012

Возможно, эта ссылка может вам помочь, некоторые элементы в kml не поддерживаются:

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

person lfergon    schedule 24.05.2012
comment
Могу ли я изменить этот файл на KML с помощью любого инструмента? - person user1365697; 24.05.2012
comment
Я обнаружил, что этот файл актуален для Google Планета Земля. Могу ли я использовать его также для API карт Google? serc.carleton.edu/sp/library/google_earth/ - person user1365697; 24.05.2012
comment
Инструмент: загрузить. cnet.com/Google-Earth-KMZ-or-KML-to-GPS-Converter/ - person lfergon; 24.05.2012
comment
Например, ‹LookAt› не поддерживается, а в этом теге указаны долгота и широта. - person lfergon; 24.05.2012