2013-06-03 14 views
2

나는 구글지도 API v3으로Google지도는 언제로드됩니까?

http://www.oe-files.de/gmaps/eqmashup.html

에서 포트에 내 라이브 지진 매시업을 시도하고있다. 현재지도와 특히 맞춤 컨트롤이 렌더링 될 때를 알기 위해 고심하고 있으므로 첫 번째 데이터 피드를로드 할 수 있습니다. 여러 피드 중 하나를 나타내는 사용자 정의 컨트롤이 강조 표시되므로 사용자 정의 컨트롤을 표시해야합니다.

google.maps.event.addListenerOnce 및 이벤트 "유휴"및 "tilesLoaded"에 대해 읽었습니다. 그러나 현재 이들 중 아무 것도 작동하지 않는 것 같습니다.

매쉬업은, 지금까지의 내가 온으로, 여기에서 찾을 수 있습니다 : 페이지가로드되면 공급 선택기 중 하나

http://www.oe-files.de/gmaps/eqmashup-ng.html

을 클릭하면 (아래 오른쪽), 피드를로드합니다. 하지만 페이지를로드 한 후 "switchFeed"를 호출 할 적절한 시점을 찾지 못하는 것 같습니다.

다른 것들은 아직 누락되었지만, 지금은 이것이 가장 큰 문제입니다. 어떤 도움을 주셔서 감사합니다. "지도"초기화되지 않기 때문에,

google.maps.event.addDomListener(window, 'load', initMashup); 
google.maps.event.addListenerOnce(map, 'tilesLoaded', function() { 
     switchFeed('usgs25'); 
    }); 

이 작동하지 않습니다


업데이트 : 순간

,이 순서는지도를 초기화하고 처음으로 데이터를로드 할 예정이다 addListerOnce가 실행될 때 내가 시도 다른 방법은

google.maps.event.addDomListener(window, 'load', initMashup); 
switchFeed('usgs25'); 

switchFeed이 (map.controls를 통해) 사용자 지정 컨트롤로 추가되는 버튼의 스타일을 전환하기 때문에, 하나가 작동하고, 그 버튼을하지 않는 (자세한 이하)이다 아직 렌더링되지 않았습니다.

내 질문은 :지도가 완전히로드 된 시점은 언제이고이 이벤트에 작업을 첨부하려면 어떻게해야합니까?

답변

0

잘 모르겠습니다. 문제가 발생하면 잘 모르겠지만 Google지도를로드하고 동시에 제어 할 수 있습니다. 피드가로드되면지도를 업데이트 할 수 있습니다. 이제 사용자가 선택 항목을 드래그합니다. 날씨에 따라 새로운 요청을하거나 이전 마커를 지우고 새 것을로드하도록 선택할 수있는 미리로드 된 json 파일을 사용하게됩니까 ?? 이 질문이 아니라면 질문을 편집하면 도움이됩니다.

0

페이지가로드되도록 신경 쓸 필요가 없습니다. V2 API처럼 매끄럽지는 않지만 작동합니다.

다른 몇 가지 (순수한 JavaScript) 꼬임이 있지만 수정해야합니다. 나는 V2에서 V3로 전환하는 것이 구글이 우리를 믿게 만들고 싶어하는 것처럼 쉽지는 않다라고 생각한다 ...

0

피드를로드하기 전에 그렇게 오래 기다릴 이유가 없다. initMashup()에지도를 초기화하고 setCenter()으로 전화를 걸고 컨트롤을 초기화하면 바로지도를 추가로 사용할 수 있습니다. 그 후에 바로 switchFeed()으로 전화 할 수 있지만 내에서initMashup() 기능을 수행하십시오. 초기화 코드가 실행되기 전에 switchFeed()을 호출했기 때문에 두 번째 코드 샘플이 작동하지 않았습니다.

비동기 코드는 입니다. 실행 명령을 조심하십시오. 어떤 잘 배치 된 console.log() 호출은 많은 것을 명확히 할 것입니다.

+0

비동기 성은 * 문제입니다. 멀리 볼 수있는 한 map.controls []. push는 컨트롤이 실제로 그려지기 전에 반환됩니다. 이렇게하면 google.maps.addListenerOnce를 사용하여 loadInitialFeed를 호출하는 경우에도 document.getElementById (currentfeed) .setAttribute가 현재 사용할 수없는 요소의 스타일을 변경하려고하므로 switchFeed를 호출하면 오류가 발생합니다. 나는 일련의 행동을 다시 둘러 보았고 지금은 그 행동을 발견했다. 그것은 좋은 것과는 거리가 멀지 만, 전체 코드는 미용 콘테스트에서 우승 할 생각이 전혀 없었습니다 ... – user2449450