使用GoogleMapsV3、PHP和Json绘制标记
我正在使用Google Maps API的新(ish)v3创建地图 我已成功获得一张地图,显示代码如下:使用GoogleMapsV3、PHP和Json绘制标记,php,json,google-maps-api-3,Php,Json,Google Maps Api 3,我正在使用Google Maps API的新(ish)v3创建地图 我已成功获得一张地图,显示代码如下: var myLatlng = new google.maps.LatLng(50.8194000,-0.1363000); var myOptions = { zoom: 14, center: myLatlng, mapTypeControl: false, scrollwheel: false, m
var myLatlng = new google.maps.LatLng(50.8194000,-0.1363000);
var myOptions = {
zoom: 14,
center: myLatlng,
mapTypeControl: false,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("location-map"), myOptions);
不过,我现在想添加一些存储在PHP数组中的标记
如果我将阵列打印到屏幕上,阵列当前看起来是这样的:
Array
(
[0] => Array
(
[poiUid] => 20
[poiName] => Brighton Cineworld
[poiCode] => brighton-cineworld
[poiLon] => -0.100450
[poiLat] => 50.810780
[poiType] => Cinemas
)
[1] => Array
(
[poiUid] => 21
[poiName] => Brighton Odeon
[poiCode] => brighton-odeon
[poiLon] => -0.144420
[poiLat] => 50.821860
[poiType] => Cinemas
)
)
到目前为止,我所做的所有阅读都建议我使用JSON_encode将其转换为JSON
如果我通过此命令运行阵列并将其回显到屏幕上,我会得到:
[{"poiUid":"20","poiName":"Brighton Cineworld","poiCode":"brighton-cineworld","poiLon":"-0.100450","poiLat":"50.810780","poiType":"Cinemas"},{"poiUid":"21","poiName":"Brighton Odeon","poiCode":"brighton-odeon","poiLon":"-0.144420","poiLat":"50.821860","poiType":"Cinemas"}]
现在我正在努力,我不确定编码的数组是否是开始填充标记所需的,我想我需要下面的代码,但不确定如何从传递的JSON中添加标记
var locations = $jsonPoiArray;
for (var i = 0;i < locations.length; i += 1) {
// Create a new marker
};
var位置=$jsonpoirray;
对于(变量i=0;i
我想我已经解决了,但是如果这是一种愚蠢的方法,请留下答案
我最终使用了
var poiJson = <? echo $jsonArray ?>;
for (var i = 0;i < poiJson.length; i += 1) {
var lat = poiJson[i].poiLat;
var lon = poiJson[i].poiLon;
addMarker(lat,lon,i);
};
function addMarker(lat,lng,no){
var latlng = new google.maps.LatLng(lat,lng);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
};
var-poiJson=;
对于(变量i=0;i
下面是一些后续内容,如果我使用以下命令,我可以看到传递的值是正确的:var poiJson=;警报(poiJson[0].poiName);