Пользовательские полилинии в Google Maps API V3

Мне нужна помощь, я пытался изменить цвет полилинии, это не работает, я не знаю, правильно ли мое решение для линии рисования, пожалуйста, помогите мне =) Я опубликую 2 кода моего обычного кода и один код с моей попыткой . спасибо =)

//This is My complete code
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>

<script type="text/javascript"
src="https://maps.google.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript">
var infowindow, map, path = [], service = new google.maps.DirectionsService(), poly;


var directionDisplay;
var directionsService = new google.maps.DirectionsService();


function initialize() 
{
directionsDisplay = new google.maps.DirectionsRenderer();
 directionsDisplay.setPanel(document.getElementById("directionsPanel"));
var latlng = new google.maps.LatLng(41.850033, -87.6500523);
 var myOptions = 
{
  zoom: 8,
  center: latlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
   mapTypeControlOptions: {
  mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID]
},
disableDoubleClickZoom: true, //Desabilitar atalho do zoom por clique

draggableCursor: "crosshair" //Cursor do Mouse em +

};


var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

directionsDisplay.setMap(map);


// FAZ A ROTA



google.maps.event.addListener(map, "click", function(evt) {
if (path.length == 0) {
  path.push(evt.latLng);
  poly = new google.maps.Polyline ({ map: map});
  poly.setPath(path);
} else {
  service.route({
    origin: path[path.length - 1],
    destination: evt.latLng,
    travelMode: google.maps.DirectionsTravelMode.DRIVING  //Pode ser Walking, Driving ou Bicycling

  }, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      path = path.concat(result.routes[0].overview_path);
      poly.setPath(path);
       }
     });
    }
  });




//Marcador
/*var marker = new google.maps.Marker({ position: latlng,   title:"Hello World!"});
marker.setMap(map);

setMap()*/
var image = 'http://i47.tinypic.com/11wg1o0.png'
var marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(41.810033, -87.8500523),
icon : image,
draggable: true


});
    var marker2 = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(41.850033, -87.6500523),
draggable: true


});

var pointA = marker;
var pointB = marker2;

//var jsonObj = Maps.newDirectionFinder().setOrigin(pointA).setDestination(pointB).getDirections();



//  InfoBox
var content = '<iframe width="560" height="315"        src="http://www.youtube.com/embed/v2ORAUREQUo" frameborder="0" allowfullscreen></iframe> ';

infowindow = new google.maps.InfoWindow({
content: content    
});
google.maps.event.addListener(marker, 'click', function() 
{
      infowindow.open(map, this);
    });

    // rotas de bike
    var bikeLayer = new google.maps.BicyclingLayer();
    bikeLayer.setMap(map);  


  }

</script>
</head>
<body onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body>

</html>

Это часть, которая делает рутину

google.maps.event.addListener(map, "click", function(evt) {
if (path.length == 0) {
  path.push(evt.latLng);
  poly = new google.maps.Polyline ({ map: map});
  poly.setPath(path);
} else {
  service.route({
    origin: path[path.length - 1],
    destination: evt.latLng,
    travelMode: google.maps.DirectionsTravelMode.DRIVING  //Pode ser Walking, Driving ou Bicycling

  }, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      path = path.concat(result.routes[0].overview_path);
      poly.setPath(path);
       }
     });
    }
  });

Чтобы закончить, это моя попытка поставить цвет

var polylineOptions = {
   strokeColor:"#FF0000",
   strokeOpacity: 1, 
   strokeWeight: 2, 
   zIndex: 5
}
google.maps.event.addListener(map, "click", function(evt) {
  if (path.length == 0) {
  path.push(evt.latLng);
  poly = new google.maps.Polyline (polylineOptions)({map: map});
  poly.setPath(path);
 } else {
  service.route({
    origin: path[path.length - 1],
    destination: evt.latLng,
    travelMode: google.maps.DirectionsTravelMode.DRIVING  //Pode ser Walking, Driving ou Bicycling

  },  function(result, status) {
      if (status == google.maps.DirectionsStatus.OK) {
      path = path.concat(result.routes[0].overview_path);
      poly.setPath(path);
     }
    });
   }
 });

Что за ошибка?


person Fred Vicentin    schedule 11.07.2012    source источник
comment
Кто-нибудь? =/ Это действительно важно   -  person Fred Vicentin    schedule 11.07.2012


Ответы (1)


Это не похоже на правильный синтаксис для меня:

poly = new google.maps.Polyline (polylineOptions)({map: map});

Вместо этого я бы сказал либо добавить атрибут карты в ваши polylineOptions, либо вызвать функцию setMap для объекта поли.

person duncan    schedule 11.07.2012
comment
Спасибо, парень, это сработало! Извините, я помещу решение здесь, потому что я не могу ответить на свою тему, моя репутация ниже 10 =P ›››› poly = new google.maps.Polyline ({map: map, strokeColor: #0024ff, strokeOpacity: 0.5, strokeWeight: 6, fillColor: #a0acf5, fillOpacity: 0,15}); - person Fred Vicentin; 11.07.2012
comment
Привет, Фред, мне нужен был ответ на этот самый вопрос сегодня вечером. Я наткнулся на ваш комментарий и ветку. Это должно помочь увеличить вашу репутацию. Спасибо! - person ZettaGeek; 28.10.2012