0

次のコードに問題があります。

function initialize() {
            //myLatLng = new google.maps.LatLng(37.422104808,-122.0838851);

            var myOptions = {
                zoom: 18,
                center: new google.maps.LatLng(42.564613,-70.809087),
                // zoom: 5,
                // center: myLatlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("map_canvas"),
                  myOptions);

   geoXml = new geoXML3.parser({
                map: map,
                singleInfoWindow: true,
                afterParse: useTheData
            });
            geoXml.parse('ActivityStatus_Producing_labels.kml');
        };
function kmlClick(marker) {
  google.maps.event.trigger(geoXml.docs[0].markers[marker],"click");
}

function useTheData(doc){
  // Geodata handling goes here, using JSON properties of the doc object
 var sidebarHtml = "<table>";
 for (var i = 0; i < doc[0].markers.length; i++) {
 // console.log(doc[0].markers[i].title);
sidebarHtml += '<tr><td><a     href="javascript:kmlClick('+i+');">'+doc[0].placemarks[i].name+'</a></td></tr>';
  }

使用しているブラウザーによっては、doc[0].markers.length が null または存在しない変数から長さを取得できないというエラーが表示されます。

この Web サイト: http://thoughtfi.com/geoxmlpractice/practiceIMR2.html Chrome では実行できますが、IE では実行できません。

この Web サイトは IE と Chrome で動作し、コードはほぼ同じです: http://www.geocodezip.com/geoxml3_test/v3_geoxml3_us_states_kml_test.html

サイトを機能させるにはどうすればよいですか? kmlファイルを時間内に解析していないか、サーバー/ブラウザが遅すぎてkmlを解析できないと思いますか?

4

1 に答える 1

1

kmlファイルのようです。IE は、それが有効な xml であるとは信じていません。feedvalidator も同様です

無効な xml (および xml ファイル レポートの文字エンコード) を修正すると、次のように機能します。

http://www.geocodezip.com/geoxml3_test/thoughtfi_com_geoxmlpractice_practiceIMR2a.html

「固定」kml を表示する別の例を次に示します。

また、Google マップが kml をどのように認識しているかを確認することもできます

http://thoughtfi.com/geoxml ... 有効な KML または KMZ ファイルではないため、表示できませんでした。

于 2012-08-16T13:03:07.277 に答える