Использование Google Maps v3, PHP и Json для построения маркеров - PullRequest
1 голос
/ 13 апреля 2010

Я создаю карту, используя новый (ish) v3 API Карт Google

Мне удалось получить карту, отображающую код, указанный ниже:

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 с помощью json_encode

Если я запускаю Array, хотя это и отображаю его на экране, я получаю:

[{"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

  };

1 Ответ

1 голос
/ 13 апреля 2010

Ну, я думаю, что решил это, однако, если это глупый способ сделать это, пожалуйста, оставьте ответ!

В итоге я использовал

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
    });
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...