Клуб API Карт

Jquery,JSON,маркеры

diasbaikoshkarov
13 мая 2015, 15:07

Добрый день, я только недавно начал работать с JAVASCRIPT и у меня возникла проблема с yandex maps, используя их пример отрисовки на карту маркеров с JSON, считываются координаты с базы, для отображения передвижения, функция отрисовки происходит по интервальному таймеру, но перед этим нужно удалять старые маркеры, что собственно у меня и не выходит. Может кто-нибудь уже сталкивался с этим, буду признателен за помощь.

Это код для отрисовки на карту

 
ymaps.ready()
    .done(function (ym) {
        var myMap = new ym.Map('YMapsID', {
            center: [55.751574, 37.573856],
            zoom: 10
        });
       var timerJ = setInterval(function()
       {
           jQuery.getJSON('drivers.php', function (json) {
            var geoObject = ym.geoQuery(json)
                .addToMap(myMap)
                .applyBoundsToMap(myMap, {
                    checkZoomRange: true
                });
               
        });
       
        }, 5000);    
    }); 
 


А это для считывания с базы

<?php
$db = mysqli_connect ("localhost", "esmart_server", "FvthbrfywsGbljhfcs!@#", "esmart_db");
 
$query_ru = "SELECT id, lat, lan  FROM es_gps_log";
$result = mysqli_query($db, $query_ru);
$rowct = $result->num_rows;
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
$i=0;
 
echo ('{ "type": "FeatureCollection", "features":[');
 
    do {
        $i++;  
        echo ('{ "type":"Feature", "geometry":{ "type":"Point", "coordinates":["'.$row[0].'","'.$row[1].'"], "properties":{"balloonContent":"comment","hintContent":"comment"}}}');
    if ($i<$rowct) {echo (',');}
        }  
    while ($row = mysqli_fetch_array( $result,MYSQLI_BOTH));
 
echo ('] }');
   
?>

 

7 комментариев
Подписаться на комментарии к посту
Всеволод Шмыров
13 мая 2015, 18:58
Добрый вечер. Если никаких других объектов на карте нет, то можно просто вызывать myMap.geoObjects.removeAll();
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/map.GeoObjects-docpage/#removeAll
diasbaikoshkarov
14 мая 2015, 12:04

Пробовал, никак не реагирует и не ругается

Всеволод Шмыров
14 мая 2015, 12:24
А можете дать ссылку на проект?
diasbaikoshkarov
14 мая 2015, 12:35

Он еще в разработке и в сети его нет

Всеволод Шмыров
14 мая 2015, 12:42
Тогда запустите страницу с включенным DevTool с включенной галочкой "ловить обработанные ошибки".
https://yadi.sk/i/3uRn7C3pgcixo
Я почти на 100% уверен, что в функции, где вызывается removeAll отсутствует ссылка на карту.

 

для отображения передвижения, функция отрисовки происходит по интервальному таймеру, но перед этим нужно удалять старые маркеры

А что у вас за проект?

На всякий случай, АПИ Яндекса нельзя использовать для мониторинга транспортных средств

http://legal.yandex.ru/maps_api/

 

diasbaikoshkarov
14 мая 2015, 12:05

Код мне нужен не для мониторинга транспортных средств