0

Google マップに複数の住所を送信したいコードがあります。しかし、私は一連のジオコーディングを行っているので、ビューポートを少なくとも中央に配置し、グループを正しくズームするにはどうすればよいでしょうか?

function doBatchGeocodeAndSearch() {
$('#loading').css('visibility', 'visible');

var lines = $('#styled').val().split('\n');

for(var i = 0;i < lines.length;i++){
    geocoder.geocode( { 'address': lines[i]}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        map.fitBounds(results[0].geometry.viewport); 
        // map.setCenter(bounds.getCenter(),
        // map.getBoundsZoomLevel(bounds));
        map.setCenter(results[0].geometry.location);
4

1 に答える 1

0

map.setCenter 呼び出しを削除します。map.fitBounds への最後の呼び出しは、すべてのマーカーを表示します。マーカーが 1 つしかない場合は、非常に近くまでズームインしますが、それを特別に処理したい場合があります。

var bounds = new google.maps.LatLngBounds();
for(var i = 0;i < lines.length;i++){
  geocoder.geocode( { 'address': lines[i]}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      bounds.extend(results[0].geometry.location);
      map.fitBounds(bounds);
于 2013-08-19T17:44:14.653 に答える