カテゴリー
未分類

おぼえ GMaps API V3ではgetBoundsZoomLevelが使えない。

調べ物をしていてヒット。

Google Maps API V3ではgetBoundsZoomLevelが使えない・・の記事から

var flag=1;
var boundsHandle = google.maps.event.addListener(map, 'bounds_changed', function() { flag=0;
if(!map.getBounds().contains(minDistancePositon)){
map.setZoom(--zoom);
}else{
google.maps.event.removeListener(boundsHandle);
//処理
$("#mapOverlay").remove();
}});
if(map.getBounds() && flag==1 && boundsHandle){
map.setZoom(--zoom);
}

リンク先(JavaScriptメモ)での記述:
minDistancePositonには含めたい座標がはいっている。bounds_changedに処理をbindしておきsetZoomでズーム率を変更していく。containsで処理したい領域が含まれるまで変更。ズームの変更が終わったらunbind。

extendを利用するのが一般的だと思うけど、今回はちょっと用途が違うので(中央の座標を維持しておきたい)

同じブログに(APIV2でなくて)API V3でのカスタムオーバーレイについて

var infoWindow;
function showBlowing (lat,lng){
if(infoWindow)infoWindow.remove();
infoWindow = new Blowing(lat,lng);
}
function Blowing(lat,lng){
this.position = mnew google.maps.LatLng(lat,lng);
this.setMap(map);}Blowing.prototype = new google.maps.OverlayView();
Blowing.prototype.draw = function() {
if(!this.div_){
this.div_ = document.createElement( "div" );
this.div_.style.position = "absolute";
this.div_.innerHTML = 'hogehoge';
var panes = this.getPanes();
panes.floatPane.appendChild( this.div_ );
}
var point = this.getProjection().fromLatLngToDivPixel(this.position);
this.div_.style.left = point.x + 'px';
this.div_.style.top = point.y + 'px';}
Blowing.prototype.remove = function() {
$(this.div_).remove(); delete this;
}
調べ物をしていてヒット。

Google Maps API V3ではgetBoundsZoomLevelが使えない・・の記事から

var flag=1;
var boundsHandle = google.maps.event.addListener(map, 'bounds_changed', function() { flag=0;
if(!map.getBounds().contains(minDistancePositon)){
map.setZoom(--zoom);
}else{
google.maps.event.removeListener(boundsHandle);
//処理
$("#mapOverlay").remove();
}});
if(map.getBounds() && flag==1 && boundsHandle){
map.setZoom(--zoom);
}

リンク先(JavaScriptメモ)での記述:
minDistancePositonには含めたい座標がはいっている。bounds_changedに処理をbindしておきsetZoomでズーム率を変更していく。containsで処理したい領域が含まれるまで変更。ズームの変更が終わったらunbind。

extendを利用するのが一般的だと思うけど、今回はちょっと用途が違うので(中央の座標を維持しておきたい)

同じブログに API V3でのカスタムオーバーレイについて


var infoWindow;function showBlowing (lat,lng){
if(infoWindow)infoWindow.remove();
infoWindow = new Blowing(lat,lng);
}

function Blowing(lat,lng){
this.position = mnew google.maps.LatLng(lat,lng);
this.setMap(map);}Blowing.prototype = new google.maps.OverlayView();
Blowing.prototype.draw = function() {
if(!this.div_){
this.div_ = document.createElement( “div” );
this.div_.style.position = “absolute”;
this.div_.innerHTML = ‘hogehoge’;
var panes = this.getPanes();
panes.floatPane.appendChild( this.div_ );
}
var point = this.getProjection().fromLatLngToDivPixel(this.position);
this.div_.style.left = point.x + ‘px’;
this.div_.style.top = point.y + ‘px’;}
Blowing.prototype.remove = function() {
$(this.div_).remove(); delete this;
}