것은

2017-11-01 5 views
0

우리는 경로 미만 180 개도 (12 개 시간대를 초과하지 않는) 경우 우리가 좌표것은

와 KML을 생성 그것을 위해, 포트 사이의 해상 경로를 그릴려고 매핑 영원히 괜찮습니다. 예를 들어

:

코스타리카 Image Route: Costa Rica -> India

경로가 180도를 초과하는 경우 인도

에, 그것은 잘못 그려집니다.

Image Route: Costa Rica -> India -> Japon

screenshot of bad polyline

는 사람이 어떻게이 문제를 해결하는 어떤 생각을 가지고 있습니까? 이 URL에

당신은 예를 볼 수 있습니다 http://lsanabria.000webhostapp.com/MapOK.html

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

이 된 KML이

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

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

,536을 사용하다

Google 어스에서 테스트되었으며 두 가지 모두 확인되었습니다.

--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>