Google Maps - usuwanie punktów na trasie


(rafalnowak) #1

Hej, mam problem z tymi białymi kropkami z czarnym obramowaniem, które powstaję podczas modyfikacji trasy na mapie poprzez przeciągnięcie jej w jakiejś miejsce. Wydaje mi się, że Google ma problem z obsługą ich usuwania, czasem można je usunąć poprzez kliknięcie na nie, ale zwykle można je tylko przesuwać, klik nie działa jako usuwanie.

Ktoś coś wie jak to usprawnić?

 

2016-06-25 11_02_19.jpg


(ziggurad) #2

Ciężko CI będzie usprawnić aplikację od googla :smiley:


(kostek135) #3

Oj tam, oj tam hejtujesz, a może on już złożył papiery do Googla i ją poprawia.

@OP
Problemu z mapą nie ma, przynajmniej jeśli chodzi ci o usługę Google Maps (https://www.google.pl/maps). Musisz najechać dokładnie na punkt, który chcesz usunąć, ale wcześniej nie “najeżdżając” na wyznaczoną trasę. Wtedy dostaniesz tooltip z informacją

To tak po prostu działa.

W przypadku punktu początkowego i końcowego dostaniesz informację:

Czyli nie możesz go usunąć.


(rafalnowak) #4

No mam już poprawkę skryptów Google, ale nie tędy droga, po ich aktualizacji może przestać działać. Google kupiło, ale zanim wdrożą trochę potrwa.

 

A tak na poważnie :smiley: Pytam bardziej o jakieś magiczne opcje w API, aby to działało. Poniżej link do przykładu Googla, gdzie mi nie działa usuwanie tych punktów. Nie bardzo widzę w dokumentacji jaka opcja mogłaby to determinować. Nie widzę też jak dostać się do events tych punktów. W directions w obiekcie DirectionsRenderer te obiekty są jedynie jako lokalizacja, nie mają żadnych funkcji typu set…

 

https://developers.google.com/maps/documentation/javascript/examples/directions-draggable

 

Może coś źle w kodzie robię… Dopiero drugi raz się bawię z Google Maps.

var request = {

  origin: points[start].location,

  destination: points[end].location,

  travelMode: google.maps.TravelMode.DRIVING,

  waypoints: []

};



for (var i = start + 1; i < end; i++) {

  request.waypoints.push(points[i]);

}



if (!sRouteData[id_route].renderers[part]) {

  sRouteData[id_route].renderers.push(new google.maps.DirectionsRenderer({

    draggable: true,

    map: sMap,

    preserveViewport: true,

    markerOptions: {

      visible: false

    },

    polylineOptions: {

      strokeColor: sRouteData[id_route].polylineColor,

      strokeWeight: 6,

      strokeOpacity: 0.8

    }

  }));

}