use*_*676 3 javascript php google-maps overlay marker
全部,我有以下几点代码:
function addPoints() {
newpoints[0] = new Array(41.45998, 87.59643, icon0, 'Place', 'Content to open');
for(var i = 0; i < newpoints.length; i++) {
var point = new GPoint(newpoints[i][1],newpoints[i][0]);
var popuphtml = newpoints[i][4] ;
var marker = createMarker(point,newpoints[i][2],popuphtml);
map.addOverlay(marker);
}
}
Run Code Online (Sandbox Code Playgroud)
此处还有其他代码可以在我的地图上显示标记.但是这个值是硬编码的.我有一个PHP/mySQL数据库,其中包含纬度/经度坐标以及其他一些值.假设我有三个要为其创建标记的条目.我如何将addPoints函数传递给我从数据库获取的lat/long,以便我可以在此函数中正确使用它?
我将我的代码更新为addPoints的以下内容:
function addPoints(num, lat, long) {
newpoints[num] = new Array(lat, long, icon0, 'Place', 'Stuff name');
alert("The newpoints length is: "+newpoints.length);
for(var i = 1; i < newpoints.length; i++) {
var point = new GPoint(newpoints[i][1],newpoints[i][0]);
var popuphtml = newpoints[i][4] ;
var marker = createMarker(point,newpoints[i][2],popuphtml);
map.addOverlay(marker);
}
}
Run Code Online (Sandbox Code Playgroud)
我通过这样做来调用此函数:
<script>
addPoints('<?php echo json_encode($num_coordinates); ?>','<?php echo json_encode($lat_coordinates); ?>', '<?php echo json_encode($long_coordinates); ?>');
</script>
Run Code Online (Sandbox Code Playgroud)
它不起作用.当我尝试不将它传递给javascript并输出lat坐标时.我得到以下输出:
{"1":"40.59479899","2":"41.4599860"}
Run Code Online (Sandbox Code Playgroud)
哪个是我的数组中的正确坐标.虽然没有创建标记.关于下一步做什么或我做错了什么的想法?
将数组从PHP传递到JavaScript的简单而干净的方法就是简单地使用数组echo的json_encode版本.
$array = array(1,2,3,4,5,6);
echo 'var values = '.json_encode($array).';';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7286 次 |
| 最近记录: |