Клуб API Карт

Помогите с координатами метки

Jokeryuga
22 сентября 2013, 17:57

Доброго дня.Столкнулся с проблемой,которая по идее тут не должна обсуждаться,но всё же рискну)подскажите как мне выбранные из БД координаты метки вставить в javascript? Вообщем в админке ставлю метку,её координаты отправляются в БД. Обычный пользователь заходит на страничку,на которой уже есть метки(координаты из БД). Что я делаю : взял из БД нужные координаты, по идее должно было быть так : 

 ymaps.ready(init);
  
 function init () {
 myMap = new ymaps.Map("map", {
 center: [46.36, 48.04],
 zoom: 12,
 behaviors:['default', 'scrollZoom']
 }, {
 balloonMaxWidth: 200
 });
// Изменяем свойство поведения с помощью опции:
 // изменение масштаба колесом прокрутки будет происходить медленно,
 // на 1/2 уровня масштабирования в секунду.
 myMap.options.set('scrollZoomSpeed', 0.5);
 //По идее здесь открываю цикл и вставляю данные
 <?php foreach($maps as $map): ?>
 myPlacemark = new ymaps.Placemark(["<?php echo $map['lantitude']; ?>" ,"<?php echo $map['longitude']; ?>" ]);
 myMap.geoObjects.add(myPlacemark);
 <?php endforeach;?>
 }

 но естесственно так не получается...как сделать не могу понять. Пробовал с json_encode, но потом опять же как вставить в script???

<script>latitude = "<?= json_encode($coord_latitude) ?>";</script> 

так тоже не получается 

2 комментария
Подписаться на комментарии к посту

Печатать из одного языка программирования конструкций другого языка — порочная практика. Преобразуйте ваши данные из базы в формат JSON и получайте их асинхронно с помощью AJAX на клиенте

на основании собственных усилий работать с БД могу предложить какую-то такую схему:

..... инициализация карты и т.д.

 .... доходим до момента считывания данных из БД

$.getJSON("getplacemarks.php",{id: UserId}, function(json){ //у меня в php передается ид пользователя

//если ничего подобного не нужно, то фигурные скобки остаются пустыми
        if (json.status == 'OK') {
            var getPlacemarks=json;
            for (var key in getPlacemarks) { //key=id1, id2....
                if(key!="status"){
                     myPlacemark = new ymaps.Placemark([getPlacemarks[key].lat,getPlacemarks[key].lon]);
                      myMap.geoObjects.add(myPlacemark);
                }
            }
         }
    })

.........

фрагмент файла getplacemarks.php, который выдает данные из БД:
....выборка из БД....

......если что-то не удалось,  то можно

$json.='{"status":"False"}';

echo  $json;

и завершить скрипт

Если все нормально, то формируем ответ
     $json = '{';
            while ($par1 = $this->ipsclass->DB->fetch_row($result1)) { //строка разборки ответа БД может быть и другой, разумеется, у меня - для работы с форумом
                $json.= '"id'.$par1['id'].'":{'; //id вобщем необязателен, просто так удобнее потом работать с метками
                $json.= '"lat":'.$par1['lat'].', "lon":'.$par1['lon'].'},';
             }
            $json.='"status":"OK"}';

//собрали строку вида {"id1":{"lat":53.5, "lon":130,3}, "id2":{"lat":55.1, "lon":132.8},..., "status":"OK"}
            echo  $json; // и выдаем ее асинхронно в вызывающий javascript