编辑:基本上就像 ASDA 商店定位器
我有一个商店定位器,当您输入邮政编码时,它会显示您附近的 3 家商店。从这 3 个标记出现在每个位置的地图上。数据是从 MYSQL 数据库中提取的,这是存储 lat 和 long 的地方。我所追求的是将结果编号为 1,2 和 3 以及带有数字 1 2 和 3 的不同标记,以便他们知道什么结果存储与什么标记相关。我知道如何创建标记,但我不确定如何应用它。这是我用来显示结果并在地图上显示标记的代码:
PHP
<?php which displays the results down the side of the map..
if(isset($stores)){
foreach($stores as $store){ ?>
<div class="stores">
<p class="name"><?php echo $store['name']; ?></p>
<p class="address"><?php echo $store['address']; ?></p>
<p class="address"><?php echo $store['postcode']; ?></p>
</div>
<php number_format($store['distance'],2) ?> miles
<?php
}
}
?>
为了获得地图上每个结果的标记,我显然使用了 javascript:
function initialize() {
var locations = [];
<?php
$count = 0;
foreach($stores as $store){
?>
locations.push(['<?php echo $store['name'] ?>','<?php echo $store['lat'] ?>','<?php echo $store['lng'] ?>','<?php echo $count++; ?>']);
<?php
}
?>
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 5,
center: new google.maps.LatLng(55.136319, -2.504183),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
}
google.maps.event.addListener(marker, 'click', (function() {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
google.maps.event.addDomListener(window, 'load', initialize);
这将显示默认标记,但如果我要将每个标记声明为图像或颜色,我如何将其应用于每个结果的数组结果?任何指导将不胜感激。