2017-11-01 5 views
0

をマップすべてが大丈夫です。例えばドローラインは、我々はルートが180度未満(12のタイムゾーンを超えていない)であれば、我々は座標</p> <p>でKMLを生成しているため、ポート間の海上ルートを描くしようとしている

コスタリカImage Route: Costa Rica -> India

ルートが180度を超えた場合インド

に、それが誤って描かれています。

Image Route: Costa Rica -> India -> Japon

screenshot of bad polyline

誰もがこれを解決するためにどのように任意のアイデアを持っていますか?あなたが例を参照することができます。このURLで

http://lsanabria.000webhostapp.com/MapFail.html

http://lsanabria.000webhostapp.com/MapOK.html

これらをのKMLは

http://lsanabria.000webhostapp.com/RouteFail.kml

http://lsanabria.000webhostapp.com/RouteOk.kml

を使用しています

Google Earthでテストされていて、どちらもOKと表示されています。

--html: -

<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0"> 
    <meta charset="utf-8"> 
    <title>KML Layers</title> 
    <style> 
     #map { height: 100%; } 
     html, body {height: 100%; margin: 0; padding: 0; } 
    </style> 
    </head> 
    <body> 
    <div id="map"></div> 
    <div id="content-window"></div> 
    <script> 
     function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 11, 
      center: {lat: 41.876, lng: -87.624} 
     }); 

     var kmlLayer = new google.maps.KmlLayer({ 
      url: 'http://lsanabria.000webhostapp.com/RouteFail.kml', 
      suppressInfoWindows: true, 
      map: map 
     }); 

     kmlLayer.addListener('click', function(kmlEvent) { 
      var text = kmlEvent.featureData.description; 
      showInContentWindow(text); 
     }); 

     function showInContentWindow(text) { 
      var sidediv = document.getElementById('content-window'); 
      sidediv.innerHTML = text; 
     } 
     } 
    </script> 
    <script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap"> 
    </script> 
    </body> 
</html> 
+1

へようこそSO! StackOverflowコミュニティにあなたのためのコードを書くように頼むことは、ここで話題にはならないと考えられます。試したコードの例を提供してください – Dethariel

+1

問題を示す[mcve]を入力してください。 180度を超える線分の中央の点はそれを修正しなければならない(すべての線分を180度未満にする)が、提供される画像に基づいて、それは問題のようには見えないが、写真から教えてください。 – geocodezip

+1

あなたのKMLは[geoxml3](http://www.geocodezip.com/geoxml3_test/v3_geoxml3_kmltest_linktoB.html?lat=9.916615&lng=-319.604176&zoom=2&type=m&filename=http://www.geocodezip.com/xmlProxy060215)で解析します。 (http://jsfiddle.net/geocodezip/et0z9fbw/) – geocodezip

答えて

0

解決

<body> 
    <div id="map"></div> 
    <div id="content-window"></div> 
    <script> 

     function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 11, 
      center: {lat: 41.876, lng: -87.624} 
     }) 

     kml = new geoXML3.parser({map: map}); 
     kml.parse('RouteFail.kml'); 

     } 
    </script> 
    <script type="text/javascript" src="https://cdn.rawgit.com/geocodezip/geoxml3/master/polys/geoxml3.js"></script> 
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=MyKey&callback=initMap"></script> 
    </body> 
関連する問題