2014-01-13 4 views
1

Google지도에서 건물 평면도를 오버레이하려고합니다. 그러나 줌 레벨 21은 너무 작아 실내 세부 정보를 표시 할 수 없습니다. 23-26 줌이 필요합니다. 동영상을 확대/축소 할 수 있습니다. 22 Google지도에서

내가 좋아하는 설정을 시도 :

var mapOptions = { 
    zoom : 24, 
      maxZoom: 26, 
    center : new google.maps.LatLng(52.226071,20.950115), 
    mapTypeId: google.maps.MapTypeId.SATELLITE, 
}; 

을했지만 작동하지 않습니다. 기본 동작이 나타납니다.

var mapOptions = { 
    zoom : 22 
      maxZoom: 26, 
      minZoom: 22, 
    center : new google.maps.LatLng(52.226071,20.950115), 
    mapTypeId: google.maps.MapTypeId.SATELLITE, 
}; 

이 더 줌을 강제 않지만, 22

가 확실히지도에 오버레이 바닥 계획에 대한 몇 가지 해결책이 있어야한다 넘어 내가 얻을 수 없습니다. 아이디어가 있으십니까?

답변

2

내장의 mapTypes합니다 (지도 타입과 위치에 따라) 미리 정의되어 대한 maxZoom에게

당신이 할 수있는 일 :
사용 custom mapType (당신은 그것을 위해 MAXZOOM을 정의 할 수 적합의 당신의 요구 사항)

지도의 zoom_changed-event를 관찰합니다. 확대/축소 할 때 특정 위치 (이 경우 21)의 maxZoom에 도달하면 기본 제공 mapType에서 사용자 정의 mapType으로 전환됩니다 (또한 줌이 21보다 작아지면 다시 전환).

+0

이것이 내 문제를 해결한다고 생각합니다. 내 평면도의 주변 환경이 공백이 아니라면 (내 사용자 정의 maptype은 빈 타일을로드합니다.) 오히려 확대 된 위성 타일을 사용하면 좋지만 여전히 충분합니다. – Przemek

+0

감사합니다. 정말 유용했습니다! – therock24

0

수정 된 버전 https://github.com/tilemapjp/ZoomTMSLayer을 사용하여이 버그를 해결했습니다. 내 타일 맵 서비스를 사용하는 대신 Google에서 네트워크 통화를하는 것과 동일한 URL을 사용했습니다.

기본적으로 google.maps.ImageMapType을 확장하고 getTile() 및 getTileUrl() 메소드를 재정의합니다. 해당 위치에서 Google이 지원하는 최대 확대/축소 수준보다 큰 확대/축소 수준의 경우 Google에서 최대 확대시 반환했을 타일을 가져온 다음 크기를 조정하고 줄을 바꿔 각 타일을 변형합니다.

편의를 위해 Github에 코드를 입력했습니다. https://github.com/dallinski/GoogleMapsSuperZoomMapType

+0

나는 패닝 할 때 종종 왼쪽의 빈 타일을 사용할 때부터 언급 한 버그를 발견 한 것 같습니다. 진단 할 전문 지식이 없기 때문에 고칠 수 있습니다. – Jack

+0

나는 실제로 대부분의 버그를 해결했다. 내 코드는 다음과 같습니다. https://github.com/dallinski/GoogleMapsSuperZoomMapType. – dallinski

+0

잠시 나 "ts"확장자를 알아 냈습니다. 그러나 이제는 Type Script를 익숙하게 사용해야한다는 것을 이해합니다. 바라건대 다른 독자에게 유용 할 것입니다. – Jack