2010-04-26 2 views
1

현재 JSON 목록에서 오는 일부 마커가 특정 영역에 표시되는 구현이 있습니다. 이제 일부 기준에 따라 이러한 마커를 필터링하고 필터링 부분을 완료하고 필터링 된 목록을 가져 왔습니다. 이제지도에서이 마커를 다시 렌더링하기 위해 현재 구현에서는 키가있는 js를 다시로드하고 GMap2 객체를 만들고 새로 만든지도에 마커 목록을 그립니다. 이는 실제로 귀찮은 일입니다. 나는지도가 거기에 있고지도에서 추가되고 제거 될 마커 만 원한다. 도움이 필요합니다.지도를 다시 그려 넣지 않고 마커를 다시 그리는 방법은 무엇입니까? google maps

+0

지금까지 수행 한 내용을 볼 수 있도록 현재 코드를 제공하는 것이 가장 좋습니다. – akamike

답변

2

addOverlay 및 removeOverlay를 사용하면 이미 표시된지도에서 마커를 추가/제거 할 수 있습니다. 여기에 예를 참조 : http://code.google.com/apis/maps/documentation/overlays.html#Markers

var latlng = new GLatLng(lat, lng); 
map.addOverlay(new GMarker(latlng)); 
+0

글쎄, 나는 그것을 시도하고 js를로드하고지도 객체를 생성하지 않고 getMarkers에 직접 뛰어 갔다. getMarkers는지도에 setCenter를 추가하고 호출하기 위해 마커를 추가했다. GMap에서 clearoverlays()를 호출 했으므로지도가 전혀 생성되지 않았습니다. 컨테이너 div가 비어 있습니다. 왜 그런지 모르겠다 !!! – Vishwanath

+0

나는 당신이 의미하는 바를 전혀 확신하지 못합니다. 이 코드는 이미 표시된지도에 새 마커를 추가합니다.지도를 다시로드 할 필요가 전혀 없습니다. var latlng = new GLatLng (latWan.lat() + latSpan * Math.random(), southWest.lng) + lngSpan * Math.random()); map.addOverlay (new GMarker (latlng)); 정말 그 이상을 돕기 위해 코드를보아야합니다. –

+0

죄송합니다. 내 잘못입니다. 당신이 말한 것은 정확히 맞았고, 나는 또한 같은 차선에있었습니다. 내 구현의 문제는 모든지도 영역을 정리하는 일부 다른 파일의 초기화 절차였습니다. 그래서 무서운 생각을했습니다. Google api를 많이 모르고 내가 놓친 것이있을 수도 있습니다. 도움을 주셔서 감사합니다. 미안하지만 나는 아직도 여기에서 새로운 것처럼 어떤 것도 기울어지지 않는다. :( – Vishwanath

1

당신은 두 개의 별도의 함수로 drawMap()와 drawMarkers()을 만들 수 있습니다. 그리고지도가 만들어지면 다음과 같이 drawMap을 빈 함수로 재정의합니다. drawMap = function() {}; 그 후 drawMarkers() 만 실행됩니다.

희망이 있기를 바랍니다. 그렇지 않은 경우 몇 가지 코드를 제공하십시오.

관련 문제