Javascript 谷歌地图多段线问题
我有一个谷歌地图,我需要在地图上的不同位置之间绘制链接。我正在使用谷歌地图多段线绘制不同点之间的链接。代码如下:Javascript 谷歌地图多段线问题,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有一个谷歌地图,我需要在地图上的不同位置之间绘制链接。我正在使用谷歌地图多段线绘制不同点之间的链接。代码如下: // code to draw map var map; var mapProp = { // center : new google.maps.LatLng(51.4848, -0.20325), zoom : 8, mapTypeId : google.maps.MapTypeId.ROADMAP }; map = new
// code to draw map
var map;
var mapProp = {
// center : new google.maps.LatLng(51.4848, -0.20325),
zoom : 8,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), mapProp);
// data to show the links between locations, first part of lat & long denotes from location and second part is to location for a link.
var links_data = [
{"path":[{"lat":53.408123,"lng":-2.985655},{"lat":53.416366,"lng":-2.985655}]},
{"path":[{"lat":53.416366,"lng":-2.985655},{"lat":53.408123,"lng":-3.038971}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.390648,"lng":-3.014405}]},
{"path":[{"lat":53.390648,"lng":-3.014405},{"lat":53.409477,"lng":-2.982685}]},
{"path":[{"lat":53.407086,"lng":-2.989244},{"lat":53.390648,"lng":-3.014405}]},
{"path":[{"lat":53.390648,"lng":-3.014405},{"lat":53.407086,"lng":-2.989244}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.407086,"lng":-2.989244}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.409477,"lng":-2.982685}]},
{"path":[{"lat":53.389557,"lng":-2.989244},{"lat":53.388615,"lng":-3.015866}]},
{"path":[{"lat":53.388615,"lng":-3.015866},{"lat":53.409477,"lng":-2.982685}]},
{"path":[{"lat":53.388615,"lng":-3.015866},{"lat":53.407086,"lng":-2.989244}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.389557,"lng":-3.014986}]},
{"path":[{"lat":53.388615,"lng":-3.015866},{"lat":53.390648,"lng":-3.014405}]},
{"path":[{"lat":53.389557,"lng":-3.014405},{"lat":53.389557,"lng":-3.022483}]},
{"path":[{"lat":53.408123,"lng":-3.038971},{"lat":53.410152,"lng":-3.022483}]},
{"path":[{"lat":53.416366,"lng":-2.985655},{"lat":53.410152,"lng":-3.022483}]},
{"path":[{"lat":53.410152,"lng":-3.022483},{"lat":53.408123,"lng":-3.038971}]},
{"path":[{"lat":53.410152,"lng":-3.022483},{"lat":53.416366,"lng":-2.985655}]}
];
// draw links
for(var i = 0 ; i < links_data.length; i++)
{
var latLng = links_data[i].path;
// polylines lat long array
var polypoints = [];
for ( var j = 0; j < latLng .length; j++) {
polypoints[j] = new google.maps.LatLng(
parseFloat(latLng [j].lat),
parseFloat(latLng [j].lng));
}
var link = new google.maps.Polyline({
path : polypoints,
geodesic : true,
strokeColor : col,
strokeOpacity : 0.5,
strokeWeight : 3,
title : "test"
});
link.setMap(map);
}
//绘制地图的代码
var映射;
var mapProp={
//中心:新google.maps.LatLng(51.4848,-0.20325),
缩放:8,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=新的google.maps.map(document.getElementById(“map”),mapProp);
//显示位置之间链接的数据,lat和long的第一部分表示从位置到位置,第二部分表示链接到位置。
变量链接\u数据=[
{“路径”:[{“lat”:53.408123,“lng”:-2.985655},{“lat”:53.416366,“lng”:-2.985655}],
{“路径”:[{“lat”:53.416366,“lng”:-2.985655},{“lat”:53.408123,“lng”:-3.038971}},
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.390648,“lng”:-3.014405}]},
{“路径”:[{“lat”:53.390648,“lng”:-3.014405},{“lat”:53.409477,“lng”:-2.982685}],
{“路径”:[{“lat”:53.407086,“lng”:-2.989244},{“lat”:53.390648,“lng”:-3.014405}]},
{“路径”:[{“lat”:53.390648,“lng”:-3.014405},{“lat”:53.407086,“lng”:-2.989244}],
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.407086,“lng”:-2.989244}]},
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.409477,“lng”:-2.982685}],
{“路径”:[{“lat”:53.389557,“lng”:-2.989244},{“lat”:53.388615,“lng”:-3.015866}],
{“路径”:[{“lat”:53.388615,“液化天然气”:-3.015866},{“lat”:53.409477,“液化天然气”:-2.982685}]},
{“路径”:[{“lat”:53.388615,“lng”:-3.015866},{“lat”:53.407086,“lng”:-2.989244}]},
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.389557,“lng”:-3.014986}]},
{“路径”:[{“lat”:53.388615,“lng”:-3.015866},{“lat”:53.390648,“lng”:-3.014405}],
{“路径”:[{“lat”:53.389557,lng:-3.014405},{“lat”:53.389557,lng:-3.022483}]},
{“路径”:[{“lat”:53.408123,“lng”:-3.038971},{“lat”:53.410152,“lng”:-3.022483}]},
{“路径”:[{“lat”:53.416366,“lng”:-2.985655},{“lat”:53.410152,“lng”:-3.022483}]},
{“路径”:[{“lat”:53.410152,“lng”:-3.022483},{“lat”:53.408123,“lng”:-3.038971}]},
{“路径”:[{“lat”:53.410152,“lng”:-3.022483},{“lat”:53.416366,“lng”:-2.985655}]
];
//绘制链接
对于(变量i=0;i
我面临的一个问题是,地图有时会显示不相关的线(其中很少用黑色椭圆标记),如下图所示:
你知道这是怎么回事吗?。我正在使用来自以下url的goggle api
; 如果没有以正确的方式填充路径坐标,则全红色的线会被重复越来越多的时间,而50%不透明度的线则是只绘制一次的线,这意味着重复相同的坐标。可能是以错误的方式或顺序在路径中加载坐标。或者你试图画更多的线,但由于错误,你画错了一条或几条线。您提供的代码不足以进行正确的计算。可能也有必要评估标记的坐标 我已经使用了您的代码,这是一个功能正常且自我一致的代码页 我在编码EAN时发现了一些小错误,我更喜欢在脚本顶部移动一些声明。本质上,问题是点的坐标在许多情况下,坐标以相反的顺序指向同一条线或从同一点开始,并且彼此非常接近。可能你需要清除双线(我已经签署了一些),并更好地定义你想在地图上显示的内容。 我希望这对你有用
<!DOCTYPE html>
<html>
<head>
<title>test sandbox 8</title>
<style type="text/css">
#main {
margin: 60px 15px;
}
#map {
min-height: 600px;
min-width: 800px;
}
</style>
<script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>
<script>
// code to draw map
var map;
var col = '#FF0000';
var link ;
var latLng;
var polypoints;
function initialize() {
var mapProp = {
center : new google.maps.LatLng(53.40, -2.99),
zoom : 12,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), mapProp);
// data to show the links between locations, first part of lat & long denotes from location and second part is to location for a link.
var links_data = [
{"path":[{"lat":53.408123,"lng":-2.985655},{"lat":53.416366,"lng":-2.985655}]},
{"path":[{"lat":53.416366,"lng":-2.985655},{"lat":53.408123,"lng":-3.038971}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.390648,"lng":-3.014405}]},
{"path":[{"lat":53.390648,"lng":-3.014405},{"lat":53.409477,"lng":-2.982685}]},
{"path":[{"lat":53.407086,"lng":-2.989244},{"lat":53.390648,"lng":-3.014405}]},
{"path":[{"lat":53.390648,"lng":-3.014405},{"lat":53.407086,"lng":-2.989244}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.407086,"lng":-2.989244}]},
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.409477,"lng":-2.982685}]},
{"path":[{"lat":53.389557,"lng":-2.989244},{"lat":53.388615,"lng":-3.015866}]}, // line 9 same origin of line 13
{"path":[{"lat":53.388615,"lng":-3.015866},{"lat":53.409477,"lng":-2.982685}]}, // line 10 same origin of line 13
{"path":[{"lat":53.388615,"lng":-3.015866},{"lat":53.407086,"lng":-2.989244}]}, // line 11
{"path":[{"lat":53.409477,"lng":-2.982685},{"lat":53.389557,"lng":-3.014986}]}, // line 12
{"path":[{"lat":53.388615,"lng":-3.015866},{"lat":53.390648,"lng":-3.014405}]}, // line 13
{"path":[{"lat":53.389557,"lng":-3.014405},{"lat":53.389557,"lng":-3.022483}]}, // line 14
{"path":[{"lat":53.408123,"lng":-3.038971},{"lat":53.410152,"lng":-3.022483}]}, // line 15 repeat line 17 in reverse order
{"path":[{"lat":53.416366,"lng":-2.985655},{"lat":53.410152,"lng":-3.022483}]}, // line 16 repeat line 18 in reverse order
{"path":[{"lat":53.410152,"lng":-3.022483},{"lat":53.408123,"lng":-3.038971}]}, // line 17
{"path":[{"lat":53.410152,"lng":-3.022483},{"lat":53.416366,"lng":-2.985655}]} // line 18
];
// draw links
for(var i = 0 ; i < links_data.length; i++)
{
latLng = links_data[i].path;
// polylines lat long array
polypoints = [];
for ( var j = 0; j < latLng.length; j++) {
polypoints[j] = new google.maps.LatLng(
parseFloat(latLng[j].lat),
parseFloat(latLng[j].lng));
}
link = new google.maps.Polyline({
path : polypoints,
geodesic : true,
strokeColor : col,
strokeOpacity : 0.5,
strokeWeight : 3,
title : "test"
});
link.setMap(map);
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
测试沙箱8
#主要{
利润率:60像素15像素;
}
#映射{
最小高度:600px;
最小宽度:800px;
}
//绘制地图的代码
var映射;
var col='#FF0000';
var-link;
var latLng;
var多点;
函数初始化(){
var mapProp={
中心:新google.maps.LatLng(53.40,-2.99),
缩放:12,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=新的google.maps.map(document.getElementById(“map”),mapProp);
//显示位置之间链接的数据,lat和long的第一部分表示从位置到位置,第二部分表示链接到位置。
变量链接\u数据=[
{“路径”:[{“lat”:53.408123,“lng”:-2.985655},{“lat”:53.416366,“lng”:-2.985655}],
{“路径”:[{“lat”:53.416366,“lng”:-2.985655},{“lat”:53.408123,“lng”:-3.038971}},
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.390648,“lng”:-3.014405}]},
{“路径”:[{“lat”:53.390648,“lng”:-3.014405},{“lat”:53.409477,“lng”:-2.982685}],
{“路径”:[{“lat”:53.407086,“lng”:-2.989244},{“lat”:53.390648,“lng”:-3.014405}]},
{“路径”:[{“lat”:53.390648,“lng”:-3.014405},{“lat”:53.407086,“lng”:-2.989244}],
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.407086,“lng”:-2.989244}]},
{“路径”:[{“lat”:53.409477,“lng”:-2.982685},{“lat”:53.409477,“lng”:-2.982685}],
{“路径”:[{“lat”:53.389557,“lng”:-2.989244},{“lat”:53.388615,“lng”:-3.015866}},//第9行与第13行的原点相同
{“路径”:[{“lat”:53.388615,“lng”:-3.015866},{“lat”:53.409477,“lng”:-2.982685}},//第10行与第13行的原点相同
{“path”:[{“lat”:53.388615,lng:-3.015866},{“lat”:53.407086,lng:-2.989244}],第11行
{“path”:[{“lat”:53.409477,lng:-2.982685},{“lat”:53.389557,lng:-3.014986}],第12行
{“路径”:[{“lat”:53.388615,“lng”:-3。