使用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变量E.G
在城市上放置一个标记$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
});
但是我的地图消失了,这根本不是很理想
如何在每个城市(非Lat / Long)的嵌入式Google地图上放置多个标记?
答案 0 :(得分:2)
您可以尝试使用从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
地理编码可能是一个缓慢的操作:通常,如果可能的话,我在数据库中保存地址的坐标,在那里将设置标记。