2014-10-23 3 views
2

Я использую API Карт Google v3 для обработки карты. Кроме того, я взял ввод/текст и кнопку ввода /, чтобы пользователь мог искать почтовый индекс.Как сосредоточиться на карте по почтовому индексу для определенной страны?

Затем карта должна быть сосредоточена на этом почтовом индексе. И это так! Но на некоторых почтовых индексах я приезжаю в очень экзотические места.

Сервер, клиент и все остальное находится в Германии, поэтому я хотел бы заблокировать все запросы в Германии. Например, если я хочу сосредоточиться на «92224», я не вижу Баварию, я теряюсь в Литве.

Я использую следующий код from this answer центрировать с помощью команды:

function codeAddress(zipCode) { 
    geocoder.geocode({ 'address': zipCode}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
     //Got result, center the map and put it out there 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
     } else { 
     alert("Geocode was not successful for the following reason: " + status); 
     } 
    }); 
    } 

Теперь, как я могу добиться того, что этот запрос только сконцентрируется на немецких почтовых индексов? (Если это помогает, немецкие почтовые индексы всегда содержат 5 номеров.)

ответ

1

Вы хотите установить componentRestrictions и фильтровать по странам.

См. documentation.

Пример:

function codeAddress(zipCode) { 

    geocoder.geocode({ 
     'address': address, "componentRestrictions":{"country":"DE"} 
    }, function (results, status) { 

     if (status == google.maps.GeocoderStatus.OK) { 

      map.setCenter(results[0].geometry.location); 

      var marker = new google.maps.Marker({ 
       map: map, 
       position: results[0].geometry.location 
      }); 

     } else { 
      alert("Geocode was not successful for the following reason: " + status); 
     } 
    }); 
} 

Демонстрация:

JSFiddle demo

Примечание:

В ИДС Обратите внимание, что вы не можете фильтровать несколько стран. Это long awaited feature, что Google до сих пор не реализовал.

Edit: 2017-04-19

Google теперь реализован способ фильтрации вплоть до 5 стран: см https://issuetracker.google.com/issues/35821685 Я не буду делать какие-либо комментарии о том, насколько это полезно ...

+0

Aaaaand это работает! Отлично, спасибо! :) Есть ли способ сказать Google Maps, чтобы сосредоточить его на расстоянии ~ 100 км? Потому что по Литве это произошло, теперь это просто центры. – Trollwut

+0

У меня не возникло твоего вопроса. Что вы подразумеваете под * центром с дистанцией *? – MrUpsidown

+0

Sry. Ваша функция хорошо подходит к почтовому индексу, который я вводил. Но затем я вижу центральную точку на расстоянии, что было раньше. Я также хотел бы установить расстояние до примерно 100 км. Так что, когда вы ищете почтовый индекс, вы также видите окружающие пейзажи, а не всю страну. :) – Trollwut

Смежные вопросы