Я создаю карту, используя новый (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 };
Ну, я думаю, что я решил это, однако, если это глупый способ сделать это, пожалуйста, оставьте ответ!
Я закончил тем, что использовал
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 }); };