Javascript 路线末端的自定义图标

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

我有一个关于谷歌地图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", 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);