Javascript 路线末端的自定义图标
我有一个关于谷歌地图v3中自定义图标的问题,我声明了一个图标Javascript 路线末端的自定义图标,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有一个关于谷歌地图v3中自定义图标的问题,我声明了一个图标 var size2 = new google.maps.Size(87,87); var start_point2 = new google.maps.Point(0,0); var foothold2 = new google.maps.Point(43,87); var endIcon = new google.maps.MarkerImage("http://gidzior.net/map/conceptPark.png", s
var size2 = new google.maps.Size(87,87);
var start_point2 = new google.maps.Point(0,0);
var foothold2 = new google.maps.Point(43,87);
var endIcon = new google.maps.MarkerImage("http://gidzior.net/map/conceptPark.png", size2, start_point2, foothold2);
我想在我的地图中使用它,在这里,在我的代码设置结束位置图标
代码
var映射;
方向显示;
var定向服务;
var步进显示;
var-markerary=[];
var位置;
var-marker=null;
var polyline=null;
var poly2=null;
var速度=0.0000005,等待=1;
var infowindow=null;
变焦;
变形虫;
var Zoomedd;
var阶跃=50;//5; // 米
myPano变种;
客户机;
nextPanoId变种;
var timerHandle=null;
var size=新的google.maps.size(26,25);
var start_point=new google.maps.point(0,0);
var foothold=newgoogle.maps.Point(13,15);
var car_icon=new google.maps.MarkerImage(“http://gidzior.net/map/car.png“、规模、起点、立足点);
var size2=新的google.maps.Size(87,87);
var start_point2=新的google.maps.Point(0,0);
var foothold2=新的google.maps.Point(43,87);
var endIcon=new google.maps.MarkerImage(“http://gidzior.net/map/conceptPark.png“、尺寸2、起点2、立足点2);
函数createMarker(板条、标签、html){
var contentString=''+label+'
'+html;
var marker=new google.maps.marker({
位置:latlng,
地图:地图,
图标:汽车图标,
可点击:false,
zIndex:Math.round(latlng.lat()*-100000)eol-10000&&zoomedd!=true){
setZoom(13);//或任何值
zoomedd=真;
}
如果(d>eol-1500&&Zomed!=真){
map.setZoom(15);//或任何值
步骤=15;
缩放=真;
}
var p=多段线。GetPointAtDistance(d);
潘托地图(p);
标记器设置位置(p);
更新日期(d);
timerHandle=setTimeout(“动画”(+(d+步骤)+)”,勾选);
}
函数startAnimation(){
eol=多段线距离();
map.setCenter(polyline.getPath().getAt(0));
//addOverlay(新的google.maps.Marker(polyline.getAt(0),G_START_图标));
//addOverlay(新的GMarker(polyline.getVertex(polyline.getVertexCount()-1),G_END_图标));
//添加覆盖图(标记);
poly2=new google.maps.Polyline({path:[Polyline.getPath().getAt(0)],strokeColor:#0000FF,strokeWeight:0});
//map.addOverlay(poly2);
setTimeout(“动画(50)”,2000);//为初始地图显示留出时间
}
您已经创建了您的图标(endIcon
),并且您知道它应该在哪里(endLocation
),因此-一旦endLocation
被地理编码并找到,就在那里创建一个标记
您已经有了一个createMarker
函数。请将该函数设置为通用函数,以便将其用于不同的图标:
function createMarker(latlng, label, html, marker_icon) {
// Note the new fourth argument
var contentString = '<b>'+label+'</b><br>'+html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
// this now uses the new argument
icon: marker_icon,
clickable: false,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
return marker;
}
endLocation.latlng
将包含旅程最后一段终点的坐标。这应该是您的目的地。因此在该点创建一个标记
var destmarker=createMarker(endLocation.latlng,'Science Park','',endIcon);
(根据需要填写
label
和html
)a有点不同,创建了一个新函数“createEndMarker”,并写入createEndMarker(endLocation.latlng,“end”,endLocation.address,“red”);没关系,我知道这不是最优的,但足够了我有一个问题想问你我正试图设置两个图标的zIndex,因为我希望汽车图标更高,我写函数function createMarker(latlng){var marker=new google.maps.marker({position:latlng,map:map,icon:car_icon,clickable:false,zIndex:1000});返回标记;}函数createEndMarker(latlng){var marker=new google.maps.marker({position:latlng,map:map,icon:endIcon,clickable:false,zIndex:500});返回标记;}
但zIndex似乎不起作用,解决这一问题的最佳方法是将站点标记移动到北面一小部分。汽车标记将堆叠在其位置北面的任何标记上。嗯,我这样做了-carIcon-zIndex:Math.round(latlng.lat()*-100000)因为如果汽车标记稍微位于场地标记的南部,它将堆叠在顶部。标记将与最南端的标记堆叠在顶部。
function createMarker(latlng, label, html, marker_icon) {
// Note the new fourth argument
var contentString = '<b>'+label+'</b><br>'+html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
// this now uses the new argument
icon: marker_icon,
clickable: false,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
return marker;
}
polyline.setMap(map);