2017-09-17 4 views
1

을 표시하지 않습니다전단지 측지 큰 데이터 세트는 나는 다음과 같은 사용하고

[ 
    [ 
    33.63669961111111, -84.427864 
    ], 
    [ 
    28.42938888888889, -81.309 
    ], 
    [ 
    44.65094444444444, -73.46813888888889 
    ], 
    [ 
    28.42938888888889, -81.309 
    ] 
] 

내가 좋은 부드러운 측지 라인을 얻을 수 있지만, 때 더 큰 데이터 세트를 사용합니다 :

[ 
    [ 
    33.43427777777777, -112.01158333333333 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    33.942625, -118.40780277777779 
    ], 
    [ 
    39.861666666666665, -104.67316666666667 
    ], 
    [ 
    39.861666666666665, -104.67316666666667 
    ], 
    [ 
    33.942625, -118.40780277777779 
    ], 
    [ 
    44.881972222222224, -93.22177777777777 
    ], 
    [ 
    44.881972222222224, -93.22177777777777 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    39.861666666666665, -104.67316666666667 
    ], 
    [ 
    33.942625, -118.40780277777779 
    ], 
    [ 
    33.63669961111111, -84.427864 
    ], 
    [ 
    33.63669961111111, -84.427864 
    ], 
    [ 
    28.42938888888889, -81.309 
    ], 
    [ 
    44.65094444444444, -73.46813888888889 
    ], 
    [ 
    28.42938888888889, -81.309 
    ], 
    [ 
    28.42938888888889, -81.309 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    26.071666666666665, -80.14969444444445 
    ], 
    [ 
    26.071666666666665, -80.14969444444445 
    ], 
    [ 
    29.984444444444446, -95.34144444444443 
    ], 
    [ 
    32.733555555555554, -117.18966666666667 
    ], 
    [ 
    32.733555555555554, -117.18966666666667 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    27.97547222222222, -82.53325 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ], 
    [ 
    44.881972222222224, -93.22177777777777 
    ], 
    [ 
    44.881972222222224, -93.22177777777777 
    ], 
    [ 
    33.43427777777777, -112.01158333333333 
    ], 
    [ 
    39.861666666666665, -104.67316666666667 
    ], 
    [ 
    39.861666666666665, -104.67316666666667 
    ], 
    [ 
    41.97732013888889, -87.90800591666667 
    ] 
] 

아무 것도 나타나지 않습니다. 나는 두 번 체크했고 두 세트 모두 겉으로보기에는 구문 적으로 동일합니다. 이 방식으로로드 할 수있는 데이터의 양에는 제한이 있습니까? 내가 https://github.com/henrythasler/Leaflet.Geodesic

답변

0

두 번째 ("큰") 데이터 집합을 사용하고

여러 연속적으로 동일 (중복)가 조정합니다.

Leaflet.Geodesic 플러그인은 2 개의 동일한 위치 사이에서 어떤 베어링도 계산할 수 없기 때문에 그 모양이 좋지 않습니다.

그 복제본을 단순히 제외하면 모든 것이 올바르게 작동합니다.

이상적으로 당신은 그 위치를 제거하기 위해 데이터 집합을 리팩토링 것, 또는 당신은 또한 런타임에 그것을 할 수 :

function filterSuccessiveDuplicatePositions(latlngs) { 
    var result = []; 

    if (latlngs.length > 0) { 
    result.push(latlngs[0]); 
    } 

    for (var i = 1; i < latlngs.length; i += 1) { 
    if (!L.latLng(latlngs[i]).equals(latlngs[i - 1])) { 
     result.push(latlngs[i]); 
    } 
    } 

    return result; 
} 

$.ajax({ 
    type: "GET", 
    url: "routes2", 
    dataType: 'json', 
    async: true, 
    success: function(latlngs) { 
    console.log(latlngs); 
    var filtered = filterSuccessiveDuplicatePositions(latlngs); 
    var Geodesic = L.geodesic([filtered], { 
     weight: 3, 
     opacity: 1, 
     color: 'navy', 
     steps: 200 
    }).addTo(mymap); 
    } 
}); 

데모 : https://plnkr.co/edit/HaQPp6PzoW9mRVcIimw0?p=preview

BTW이 버그가 plugin repository issue #9

+0

당신에 추적 사장님! 와우. 제한된 JS 지식으로는이 코드를 작성할 수 없었을 것입니다. 파이썬에서도 조금 까다 롭습니다. 너는 내 영원한 감사를 느낀다. 너에게 100 만 인터넷 포인트를 주었다. 진지하게, 이것은 우수합니다 :) 감사합니다! – user2498975

+0

환영합니다, 좋은 의견에 감사드립니다! 참고로이 문제를 해결하기 위해 [PR # 27] (https://github.com/henrythasler/Leaflet.Geodesic/pull/27)을 제출했습니다. – ghybs