отображение вывода json на карте Google API v3 - PullRequest
0 голосов
/ 24 июня 2011

У меня есть вывод json, который правильно показывает мою информацию, но у меня чертовски много времени получается, когда он показывает значок на каждой паре lat + lng из моей БД

Вот мой текущий код

<?php

require('inc/db.inc.php');
mysql_connect($connect, $user, $pword) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());

$sql=mysql_query("SELECT store_lat,store_long FROM location WHERE status='Active'");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
$locations=(json_encode($output));

?>
<script src="http://maps.google.com/maps/api/js?sensor=false&amp;key=MY_API_KEY" type="text/javascript"></script>
<script type="text/javascript"> 
function initialize() {

    var image = 'images/icon.png';
    var myLatlng = new google.maps.LatLng(42.548625, -92.548765);

    var myOptions = {
        zoom: 4,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        }

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var poiJson = <? echo $locations ?>;
    for (var i = 0;i < poiJson.length; i += 1) {
        var lat = poiJson[i].store_lat;
        var lng = poiJson[i].store_long;
        addMarker(lat,lng,i);
        };
}

function addMarker(lat,lng,no){
    var latlng = new google.maps.LatLng(lat,lng);
    var marker = new google.maps.Marker({
        position: latlng,
        map: map
        // if i uncomment the icon line no map will show at all
        //icon: image
        });
}
</script> 

<? include "header.php"; ?>
<p>
<table width="1024">
<tr>
  <td align="center" valign="top"><div id="map_canvas" style="width: 95%; height: 600px;"></div></td>
</tr>
</table>
</p>
</body> 
</html>

Редактировать

Если я изменю изображение в функцию addMarker, эта доза ничего не изменит.

<script type="text/javascript"> 
function initialize() {


    var myLatlng = new google.maps.LatLng(42.548625, -92.548765);

    var myOptions = {
        zoom: 4,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        }

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var poiJson = <? echo $locations ?>;
    for (var i = 0;i < poiJson.length; i += 1) {
        var lat = poiJson[i].store_lat;
        var lng = poiJson[i].store_long;
        addMarker(lat,lng,i);
        };
}

function addMarker(lat,lng,no){
    var image = 'images/icon.png';
    var latlng = new google.maps.LatLng(lat,lng);
    var marker = new google.maps.Marker({
        position: latlng,
        map: map
        //icon: image
        });
}
</script>

1 Ответ

1 голос
/ 24 июня 2011

В области действия addMarker не определено image (следовательно, вы получите ошибку).Это только локальный до initialize.Либо определите его в addMarker, либо сделайте его глобальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...