在Google 地图上实现做的标记相连接
这里仅仅是将谷歌地图API的使用方法告诉大家,算是抛砖引玉吧,由于某些原因,谷歌已经远离大家了。
<!DOCTYPEhtml>
<html>
<head>
<title>GeoLocation</title>
<metaname="viewport"content="initial-scale=1.0,user-scalable=no">
<metacharset="utf-8">
<style>
html,body,#map-canvas{
margin:0;
padding:0;
height:100%;
}
</style>
<scriptsrc="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
varmap;
varpoly;
functioninitialize(){
varmyLatlng=newgoogle.maps.LatLng(31.1937077,121.4158436);
varlocations=[
['test1,accuracy:150m',31.1937077,121.4158436,100],
['test2,accuracy:150m',31.2937077,121.4158436,100],
['test3,accuracy:150m',31.0937077,121.2158436,100],
['test4,accuracy:150m',31.3937077,120.4158436,100],
['test5,accuracy:150m',31.1637077,120.4858436,100],
['test6,accuracy:150m',31.1037077,121.5158436,100]
];
varmapOptions={
zoom:13,
center:myLatlng,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
map=newgoogle.maps.Map(document.getElementById('map-canvas'),
mapOptions);
//线条设置
varpolyOptions={
strokeColor:'#00ff00', //颜色
strokeOpacity:1.0, //透明度
strokeWeight:4 //宽度
}
poly=newgoogle.maps.Polyline(polyOptions);
poly.setMap(map); //装载
/*循环标出所有坐标*/
/*for(vari=0;i<locations.length;i++){
varloc=[];
loc.push(locations[i][1]);
loc.push(locations[i][2]);
varpath=poly.getPath(); //获取线条的坐标
path.push(newgoogle.maps.LatLng(loc[0],loc[1])); //为线条添加标记坐标
//生成标记图标
marker=newgoogle.maps.Marker({
position:newgoogle.maps.LatLng(loc[0],loc[1]),
map:map
//icon:"https://maps.gstatic.com/mapfiles/markers/marker_green.png"
});
}*/
varmarker,i,circle;
variwarray=[];
varinfoWindow;
varlatlngbounds=newgoogle.maps.LatLngBounds();
variconYellow=newgoogle.maps.MarkerImage("http://maps.google.com/mapfiles/ms/icons/yellow-dot.png");
for(i=0;i<locations.length;i++){
varloc=[];
loc.push(locations[i][1]);
loc.push(locations[i][2]);
varpath=poly.getPath(); //获取线条的坐标
path.push(newgoogle.maps.LatLng(loc[0],loc[1]));
varlatlng=newgoogle.maps.LatLng(locations[i][1],locations[i][2]);
latlngbounds.extend(latlng);
if(locations[i][0].indexOf("[Cached")==0||(locations[i][0].indexOf("[Multiple")==0&&locations[i][0].indexOf("[Cached")>=0)){
marker=newgoogle.maps.Marker({
position:latlng,
map:map,
icon:iconYellow
});
variw='<divstyle="font-size:12px;word-wrap:break-word;word-break:break-all;"><strong><fontcolor="#FF0000">'+locations[i][0]+'<font></strong><div>';
}else{
marker=newgoogle.maps.Marker({
position:latlng,
map:map
});
variw='<divstyle="font-size:12px;word-wrap:break-word;word-break:break-all;"><strong><fontcolor="#000000">'+locations[i][0]+'<font></strong><div>';
}
iwarray[i]=iw;
google.maps.event.addListener(marker,'mouseover',(function(marker,i){
returnfunction(){
infoWindow=newgoogle.maps.InfoWindow({
content:iwarray[i],
maxWidth:200,
pixelOffset:newgoogle.maps.Size(0,0)
});
infoWindow.open(map,marker);
}
})(marker,i));
google.maps.event.addListener(marker,'mouseout',function(){
infoWindow.close();
});
circle=newgoogle.maps.Circle({
map:map,
radius:locations[i][3],
fillColor:'#0000AA',
fillOpacity:0.01,
strokeWeight:1,
strokeColor:'#0000CC',
strokeOpacity:0.8
});
circle.bindTo('center',marker,'position');
}
map.fitBounds(latlngbounds);
varlistener=google.maps.event.addListenerOnce(map,"idle",function()
{
varzoomLevel=parseInt(map.getZoom());
if(zoomLevel>13)
map.setZoom(13);
});
}
google.maps.event.addDomListener(window,'load',initialize);
</script>
</head>
<body>
<divid="map-canvas"></div>
</body>
</html>