Php 使用json编码数组循环google maps标记
这里真的需要帮助。我使用json_encode转换了一个数组,以便能够在下面的google地图中循环搜索结果的lats/long。如果我只使用普通标记,并且如果我回显得到的json编码数组,则映射加载良好:Php 使用json编码数组循环google maps标记,php,google-maps,json,Php,Google Maps,Json,这里真的需要帮助。我使用json_encode转换了一个数组,以便能够在下面的google地图中循环搜索结果的lats/long。如果我只使用普通标记,并且如果我回显得到的json编码数组,则映射加载良好: ["55.7171, 13.2354","55.6411, 13.2122"] 下面的Php代码(除了标记部分,忽略大部分代码,只是让您了解如何使用它) “> 脚本底部的Javascript初始化映射等。我得到一个带有此代码但没有标记的映射 <script type="t
["55.7171, 13.2354","55.6411, 13.2122"]
下面的Php代码(除了标记部分,忽略大部分代码,只是让您了解如何使用它)
“>
脚本底部的Javascript初始化映射等。我得到一个带有此代码但没有标记的映射
<script type="text/javascript">
function initialize() {
var markers = <?php echo json_encode($markers); ?>;
var myLatLng = new google.maps.LatLng( <?php echo $area_coords; ?> );
var mapOptions = {
center:myLatLng,
zoom:15,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
for (i = 0; i < markers.length; i++) {
var position = new google.maps.LatLng(markers[i]);
var marker = new google.maps.Marker({
map:map,
position:position
});
}
}
initialize();
函数初始化(){
var标记=;
var mylatng=newgoogle.maps.LatLng();
变量映射选项={
中心:myLatLng,
缩放:15,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),
地图选项);
对于(i=0;i
我认为这是因为您将一个字符串作为LatLng参数而不是两个浮点数传递…也许您可以更改JSON,使其: [lat,lng],[lat,lng]…]如是:
$markers[] = [$result['latitude'],$result['longitude']];
然后
var position = new google.maps.LatLng(markers[i][0],markers[i][1]);
大约15小时后才能尝试,但到时候会看到它是否有效。希望这只是stringproblem,它至少意味着代码的其余部分还可以。其余部分看起来相当标准。我还建议在创建标记时将标记添加到数组中,这将有助于清除地图和管理标记上的单击事件呃……请看这里:
var position = new google.maps.LatLng(markers[i][0],markers[i][1]);