Изменить отдельные маркеры в Google Maps направлениях API V3 - PullRequest
33 голосов
/ 27 января 2011

Я хочу изменить значки маркеров при использовании DirectionsRender на карте Google. Из здесь я понял, как поменять оба маркера на один и тот же значок, но я ищу пользовательские значки как в начальной, так и в конечной точках. Есть идеи?

Изменить: я ищу, как назначить отдельные значки для маркеров начала и конца. Я знаю, как изменить его для обоих, но иметь разные значки маркеров довольно сложно.

Ответы [ 2 ]

66 голосов
/ 05 марта 2011

Для тех, кому нужен пример, подобный моему, вот базовый:

 // Map and directions objects
 var map = new google.maps.Map( element, options );
 var service = new google.maps.DirectionsService();
 var directions = new google.maps.DirectionsRenderer({suppressMarkers: true});

 // Start/Finish icons
 var icons = {
  start: new google.maps.MarkerImage(
   // URL
   'start.png',
   // (width,height)
   new google.maps.Size( 44, 32 ),
   // The origin point (x,y)
   new google.maps.Point( 0, 0 ),
   // The anchor point (x,y)
   new google.maps.Point( 22, 32 )
  ),
  end: new google.maps.MarkerImage(
   // URL
   'end.png',
   // (width,height)
   new google.maps.Size( 44, 32 ),
   // The origin point (x,y)
   new google.maps.Point( 0, 0 ),
   // The anchor point (x,y)
   new google.maps.Point( 22, 32 )
  )
 };

service.route( { origin: origin, destination: destination }, function( response, status ) {
 if ( status == google.maps.DirectionsStatus.OK ) {
  display.setDirections( response );
  var leg = response.routes[ 0 ].legs[ 0 ];
  makeMarker( leg.start_location, icons.start, "title" );
  makeMarker( leg.end_location, icons.end, 'title' );
 }
});
function makeMarker( position, icon, title ) {
 new google.maps.Marker({
  position: position,
  map: map,
  icon: icon,
  title: title
 });
}

Ответ на запрос маршрута возвращает участок (и) в зависимости от количества остановок на вашем маршруте.Я только делаю маршрут от А до Б, поэтому просто возьмите первый этап и определите, куда должны идти маркеры, и создайте маркеры для этих мест.

12 голосов
/ 27 января 2011

Делайте, как говорится на той странице, на которую вы ссылались:

  • Установите для параметра suppressMarkers значение true, чтобы начальные и конечные маркеры по умолчанию не отображали
  • Создайте изображений для двух новых маркеров
  • Создайте маркеры с позицией, установленной на начальную и конечную позиции, и значком, установленным на те, которые вы создали
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...