我已经看过周围所以发现了一些类似于我的情况,但还没有找到解决方案。 我正在学习PHP,Javascript,所以代码可能有点关闭,但这里有:多个谷歌地图标记与PHP
我有一个带有邮政编码搜索功能的谷歌地图工作 - 邮政编码和纬度/长度存储在Mysql DB。我现在需要的是为地图上的任何数量的标记放置特定的邮政编码的功能 - 我希望能够根据缩放级别扩展功能以允许邮政编码+ 10英里等等。下面的代码将带回标记的纬度/经度,但它在每个结果的末尾都粘上一个“,”,因此当我将它传递给javascript时,它是一个无效参数 - 请确保我知道方式我做的这一切都是在效率 - 我学习,我沿着:)
PHP函数去:
// get markers Function
if(!function_exists("getMarkers"))
{
//Get Markers Function
function getMarkers()
{
//prep the query
include ('../../secure/db_conn.php');
$currentPcode = searchPostcode($_POST['postcode']);
$tsearch = $con->prepare("SELECT t.CompanyName, p.lat, p.lng FROM Traders t, cpo_data p WHERE t.Postcode LIKE p.Postcode");
$tsearch->bindParam(1,$currentPcode, PDO::PARAM_STR);
$tsearch->execute();
$tresults = $tsearch->fetchAll(PDO::FETCH_ASSOC);
foreach ($tresults as $row)
{
$Company = $row['CompanyName'];
$Tlat = (string)$row['p.lat'];
$Tlng = (string)$row['p.lng'];
}
echo $Tlat .", " .$Tlng;
}
}
的Javascript:
<script src="http://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<script>
//postcode function call
var myCenter=new google.maps.LatLng(<?php echo searchPostcode($_POST['postcode']); ?>);
//markers function call
var locations=new google.maps.LatLng(<?php echo getMarkers(); ?>);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:14,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var mymap=new google.maps.Map(document.getElementById("googleMap"),mapProp);
// To add the marker to the map, use the 'map' property
var marker, i;
for (i = 0; i < locations.length; i++)
{
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i]),
map: mymap
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i]);
infowindow.open(mymap, marker);
}
})(marker, i));
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
任何帮助或建议将不胜感激 - 我目前的知识只有PHP和Javascript(如前所述,它是初学者的知识)。
忘了补充,当我在Chrome中使用谷歌开发者工具来分析页面时,我可以看到以下证明它正在拾取纬度/长度,但在最后用逗号(我认为这是做它是一个数组,但不知道如何处理它):
var locations=new google.maps.LatLng(53.51139969260000, -2.54091408438000,);
不知道这是否是一种粗糙的做法,但我在PHP回声中做了以下操作:echo trim($ Tlat。“,”。$ Tlng,',');这删除了逗号和我的地图显示 - 但是,我的标记没有出现,没有错误...我想我的JavaScript循环可能是问题? –