0

誰かが私を助けてくれるのではないかと思います。

このページを使用して、ユーザーが MySQL データベースに保存されたマーカーを表示し、新しいマーカー位置をジオコーディング/リバース ジオコーディングできるようにしています。

データベースからロードされているマーカーのマップを正しく中央に配置できますが、マップが最大設定にズームインするという問題がありますが、これを手動で設定できるようにしたいと考えています。

ここで、スクリプトに別のズーム コントロールを追加しようとしました。

// add marker
var bounds = new google.maps.LatLngBounds(); 
var loc = new google.maps.LatLng(las[i],lgs[i]);
var marker = new google.maps.Marker({
position: loc, 
map: window.map,
zoom: 8,
title: nms[i]
});
bounds.extend(loc);
map.fitBounds(bounds);

残念ながら、これは影響しません。一部の人にとってはこれが非常にマイナーな修正である可能性があることを理解していますが、私はこれをしばらく見てきましたが、解決策を見つけることができないようです.

誰かがこれを見て、どこが間違っているか教えてくれるかどうか疑問に思いましたか?

更新後の投稿

既存のコードと@Andrew Leachによって提案されたものを使用して解決策を考え出しました。実用的なソリューションは次のとおりです。

// add marker
var bounds = new google.maps.LatLngBounds(); 

var loc = new google.maps.LatLng(las[i],lgs[i]);
var marker = new google.maps.Marker({
position: loc, 
map: window.map,            
title: nms[i]
});
bounds.extend(loc);
map.fitBounds(bounds);
map.setZoom(16);
4

1 に答える 1

1

への参照を削除しますbounds

マップにマーカーを追加し、その1 つのポイントのみLatLngBoundsを含むオブジェクトを作成します。次に、境界がマップのビューポートに収まるようにズームインするようにマップに指示します。ビューポートに 1 つの位置を合わせると、常に可能な限り拡大されますが、それでも 1 つのポイントがビューポート全体を占めることはありません。

ただし、は有効なオプションではないzoomため、マーカー オプションへの追加も機能しません。ドキュメンテーションzoom

代わりに、設定時にマップのオプションを使用するか、マップのmap.setZoom(8)オプションにオプションを含めることにより、マップのズームを明示的に設定します。zoom

于 2012-06-09T13:35:25.250 に答える