Google Maps API를 사용하여 GeoJSON 데이터로 정의 된 일부 경로의 오버레이를 추가하려고합니다. this thread의 예제를 사용하여 시작했는데 두 데이터 경로를 사용하기 전까지 데이터가 정상적으로 작동했습니다. 경로를 다른 색상으로 렌더링해야하므로 데이터 세트를 결합 할 수 없습니다.d3.js 및 google maps API가있는 다중 경로
모든 경로가 완전히 렌더링되지 않는 문제가 발생했습니다. 빨간색 경로가 렌더링 알 수 있지만, 녹색 경로가 나타 결코 -
path2 = d3.geo.path().projection(googleMapProjection);
path4 = d3.geo.path().projection(googleMapProjection);
svg.selectAll("path")
.data(line2_geoJson.features)
.attr("d", path2) // update existing paths
.attr("stroke", "red")
.enter().append("svg:path");
svg.selectAll("path")
.data(line4_geoJson.features)
.attr("d", path4) // update existing paths
.attr("stroke", "green")
.enter().append("svg:path");
은 몇 가지 예를 표시하려면 : 여기에 내가 시도하고있는 무슨의 요점이다. (조금 확대하십시오.)
http://jsfiddle.net/X644x/ - 유일한 차이점은 두 개의 svg.selectAll 문 순서를 바꿨습니다. 녹색 경로는 주로 렌더링되고 약간 확대 한 후에 빨간색 경로의 비트가 렌더링됩니다.
아무도 무슨 일이 일어 났는지 설명 할 수 있습니까? 내 생각에 Google Maps API가 오버레이 (일종의 타임 아웃)에 어떤 종류의 한계를 부과하고 있습니까? 아니면 여기서 비동기적인 것이 있습니까? 나는 d3에 초보자이므로 어떤 설명도 크게 감사하겠습니다.
응답 해 주셔서 감사합니다. 그 방법을 시도해도 여전히 문제가 발생합니다. 경로는 완전히 렌더링되지 않으며 Google지도의 줌 레벨이 변경되면 덮어 쓰지 않습니다. 지도를 잘못 확대 한 후에 [[jsfiddle] (http://jsfiddle.net/hpeMn/))을 시도해보세요.지도가 부적절하게 배치 된 경로로 가득 차게됩니다. –
Google지도 문제와 같습니다. 빠른 수정으로 새 경로를 추가하기 전에'svg.selectAll ("path"). remove();를 추가하는 것은 추악하지만 작동합니다. –
그거야. 다른 사람들을 위해 [GeoJSON to Google Maps] (https://github.com/JasonSanford/GeoJSON-to-Google-Maps)도 이와 같은 유용한 도구가 될 수 있습니다. –