Как установить несколько маркеров на основе переменных PHP?

Используя Google Maps JavaScript API v3, у меня есть карта, на которой я могу разместить маркер на основе LatLng.

var marker = new google.maps.Marker({
 position: new google.maps.LatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()),

То, что я хочу сделать, это разместить маркер в городе на основе переменной PHP EG

$town_1 = "London";
$town_2 = "Reading";

И мой желаемый результат был бы двумя маркерами, соответственно, в их городе.

Что теоретически могло бы выглядеть примерно так:

for (var i = 0; i < 3; i++) {

 var marker = new google.maps.Marker({
 position: <!--?php echo $town_1; ?-->
 map: map,
 title: 'Town ' + i
 });

Но моя карта исчезает, что совсем не очень желательно

Как разместить несколько маркеров на встроенных Картах Google в одном городе (не Lat/Long)?

1 ответ

Вы можете попытаться геокодировать город, используя этот скрипт, слегка измененный из документации Google Map Api v3:

function codeAddress() {
 var address = <!--?php echo $town_1; ?-->
 geocoder.geocode( { 'address': address}, 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);
}

}); }

Документация доступна здесь: https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

Геокодом может быть медленная операция: обычно, если это возможно, я сохраняю в базе данных координату адреса, где будет установлен маркер.

licensed under cc by-sa 3.0 with attribution.