0
真的需要帮助在这里。我使用json_encode转换数组,以便能够在下面的谷歌地图中遍历searchresult的lats/longs。地图加载罚款,如果我只是使用普通的标志,如果我呼应JSON编码阵列我得到:循环谷歌地图标记与JSON编码阵列
["55.7171, 13.2354","55.6411, 13.2122"]
下面(的PHP代码忽略大部分除了标记的一部分,只是给你的想法它如何使用)。
<?php
if (isset($search_result)) {
$markers = array();
// Looping through the results and displaying appropriate data.
foreach ($search_result as $result) {
?>
<li><?= $result['first_name']; ?></li>
<li><?= $result['last_name']; ?></li>
<li><?= $result['address']; ?></li>
<li><img width="80" height="80" src="<?php echo file_exists($result['profile_picture'])? $result['profile_picture'] : $img_profile_def; ?>"></li>
<li><a href="profile.php?userid=<?= $result['id']; ?>">View This User</a></li><br><br>
<?php
$markers[] = $result['latitude'] . ', ' . $result['longitude'];
}
}
?>
的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();
不容尝试它,直到大约15个小时,但会看它是否工作那么。希望这只是字符串问题,至少意味着代码的其余部分没问题。 – HolyMackerel 2013-02-25 20:03:58
其余的看起来很标准。我还建议您在创建标记时将其添加到数组中,它可以帮助您清除地图以及管理标记上的点击事件......请参阅https://developers.google.com/图/文档/ JavaScript的/覆盖#RemovingOverlays – 2013-02-25 20:33:14