2012-07-04 4 views
2

Я использую плагин GMAP3 для отображения направления движения. И хотел бы добавить четкую кнопку, чтобы она могла быть ясной, но я не смог найти правильный синтаксис в GMAP3. Вот мой код js, измененный из образца в gmap3.net. У меня уже есть маркеры, и latlng извлекаются из построенных маркеров, а не из положения кликов на карте.Как удалить отображаемый маршрут с помощью плагина gmap3?

function removePath() { 
    $(mapID).gmap3({ 
     action: 'clear', 
     name: 'directionRenderer' 
     // tag: 'path' // works too with tag instead of name 
}); 

function updatePath() { 
$(mapID).gmap3({ 
    action: 'getRoute', 
    options: { 
      origin: m1.getPosition(), 
      destination: m2.getPosition(), 
      travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }, 
    callback: function (results) { 
      if (!results) return; 
      $(mapID).gmap3({ 
       action: 'setDirections', 
       directions:results, 

      }); 
    } 
}); 
}; 

function updateDirection(mm) { // Directions between m1 and m2 
var mmID = $(mm).prop('id'); 
... 
if (mmID == 'clearDirection') { 
... 
    removePath(); 
    return; 
}; 
... 
if (m1 && m2) { updatePath(); };  
}; 

function initmap() { 
    $(mapID).gmap3(
     { 
     action: 'init', 
     options: defaultMapOptions 
     }, 
    // add direction renderer to configure options (else, automatically created with default options) 
     { action: 'addDirectionsRenderer', 
     preserveViewport: true, 
     markerOptions: { visible: false }, 
     options: {draggable:true}, 
     tag: 'path' 
     }, 
    // add a direction panel 
     { action: 'setDirectionsPanel', 
     id: 'directions' 
     } 
    ); 

};

A находится на месте в документах HTML в виде панели направлений. Он имеет оболочку, которая скрыта, когда маршрут очищается с помощью изменения свойства jquery css. Свойство отображения оболочки div возвращается к «блоку», когда значение присваивается либо m1, либо m2.

<body> 
... 
<div id="direction_container" class="shadowSE"> 
    .... 
    <div id="directions"></div> 
    .... 
</div> 
</body> 

ответ

3

Его абсолютно работает нормально.

$map.gmap3({ action: 'clear', name: 'directionRenderer' }); 

* Instructions- Если вы позже сделать маршрут, то вы должны написать ниже код в противном случае направления не отображается.

$map.gmap3({ action: 'addDirectionsRenderer', preserveViewport: true, 
markerOptions: { visible: false} }, 
{ action: 'setDirectionsPanel', id: 'directions' }); 

Благодаря ...

+0

Спасибо Суриндер. Теперь он отлично работает. – KYLO

0

Используйте это:

$(mapID).gmap3({action:"clear", name:"directionRenderer"}); 
+0

Спасибо за предложение. Он удаляет маршрут, и я могу добавить маршрут обратно с новым выбором m1 и m2 после этого. Однако setDirections перестает работать после его использования. Если я не понимаю, просто выберите разные m1 или m2, как маршрут, так и направление работают нормально. – KYLO

0

Выбранный ответ выше, не работает для меня. Я уверен, если это версия связана, но решение я использую более простое:

$(your-selector).gmap3({clear: {}}); 

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

 Смежные вопросы

  • Нет связанных вопросов^_^