我想在我的项目中使用gMap jQuery插件。我成功地显示了Google地图,我可以显示一些标记,但我找不到任何方法来绘制折线。
我有这个JS代码:
$(window).ready(function () {
var data = {
'latitude': 0.000000,
'longitude': -180.000000,
'zoom': 3,
'maptype': "terrain",
};
var gps_coordinates = {
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2,
path: [
{'latitude':37.772323,'longitude':-122.214897},
{'latitude':21.291982,'longitude':-157.821856},
{'latitude':-18.142599,'longitude':178.431000},
{'latitude':-27.467580,'longitude':153.027892}
]
};
$('#map').gMap(data);
$('#map').gMap("Polyline", gps_coordinates);
});
在gMap documentation中注明:
您还可以使用一些内部gmap函数。
所以我想,我可以使用google.maps.Polyline
函数绘制折线。但是如何?
答案 0 :(得分:3)
我不熟悉gMap插件。但是,如果我只使用Google Maps API 3进行此操作,我会执行以下操作:
var homeLatlng= new google.maps.LatLng(0, -180);
var myOptions = {
zoom: 3,
center: homeLatlng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var pathLatLng;
var paths = [
{'latitude':37.772323,'longitude':-122.214897},
{'latitude':21.291982,'longitude':-157.821856},
{'latitude':-18.142599,'longitude':178.431000},
{'latitude':-27.467580,'longitude':153.027892}
];
for (var i = 0; i < paths.length; i++) {
pathLatLng = new google.maps.LatLng(paths[i].latitude, paths[i].longitude);
path = new google.maps.Polyline({
path: [homeLatlng, pathLatLng],
strokeColor: "##FF0000",
strokeOpacity: 1.0,
strokeWeight: 2,
geodesic: true,
map: map
});
}
此地图绘制曲线,表示两个目的地之间真正的最短路线。如果您只想要直线,请将geodesic属性设置为false
答案 1 :(得分:0)
Gmap有一个叠加扩展(jquery.ui.map.overlays.js),可以添加折线等形状。
这是一个例子(avlMarkers是LatLng的数组):
var colour = '#0000FF';
var polyline = {
path: avlMarkers,
strokeColor: colour,
strokeOpacity: 1.0,
strokeWeight: 4
};
$('#map_canvas').gmap('addShape', 'Polyline', polyline);