我有以下Lat Long坐标(在JS数组中),我们如何在这些坐标上绘制带有标记的Google Map。
请举一个简单的例子,因为API文档中的示例并没有给出确定的答案或对我来说太复杂。
43.82846160000000000000,-79.53560419999997000000
43.65162010000000000000,-79.73558579999997000000
43.75846240000000000000,-79.22252100000003000000
43.71773540000000000000,-79.74897190000002000000
提前致谢。
答案 0 :(得分:1)
我使用谷歌地图,如果你只需要放置几个标记(确保你使用的是API v3),v2会被折旧,并且会在某些时候失效。接下来,你的lat / long coords。他们需要被削减到9或10个字符。当我使用超长的纬度/长Coords值时,我一直不走运。
Google有一个很好的工具,可以让你用它来构建地图。从这里开始:
https://developers.google.com/maps/documentation/javascript/
意识到您需要在您的webhosts域上使用密钥。你可以在这里获得你的钥匙:
https://developers.google.com/maps/signup
一长串演示,包含65个v3 API示例。
https://developers.google.com/maps/documentation/javascript/demogallery
在演示中我发现这个看起来很接近的例子。通过查看源重用您找到的代码。您可以通过此链接查看lat / long coord对以及它如何调用它。
http://gmaps-samples-v3.googlecode.com/svn/trunk/smartinfowindow/js/data.js
这是校园地图示例。
最后,这是最简单的例子。一个标记图。查看源代码并重用它。希望它足以让你开始。
https://google-developers.appspot.com/maps/documentation/javascript/examples/marker-simple
我希望这一切都有帮助。
答案 1 :(得分:1)
你可以试试这个
var map,
locations = [
[43.82846160000000000000, -79.53560419999997000000],
[43.65162010000000000000, -79.73558579999997000000],
[43.75846240000000000000, -79.22252100000003000000],
[43.71773540000000000000, -79.74897190000002000000]
];
var myOptions = {
zoom: 6,
center: new google.maps.LatLng(locations[0][0], locations[0][1]),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map($('#map')[0], myOptions);
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][0], locations[i][1]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent('Current location is: '+ locations[i][0]+', '+locations[i][1]);
infowindow.open(map, marker);
}
})(marker, i));
}
答案 2 :(得分:0)
首先,您将创建谷歌地图对象,在head标签内的某个位置,您将侦听就绪事件,并且在处理程序中有:
var mapOptions =
{
zoom: 10,
center: new google.maps.LatLng( <%= @drawings.first.latitude %>, <%= @drawings.first.longitude %> ),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
这假设您的html中有一个id为map_canvas的div。
比你应该准备好向页面添加标记,你应该将你的坐标存储在一个数组中,这样你就可以遍历它和那些标记。
for( var i=0; i < coords.length; i++ )
{
latlng = coords[i].latitude + ", " + coords[i].longitude;
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: '',
icon: "http://maps.google.com/mapfiles/marker" + String.fromCharCode(coords.length + 65) + ".png"
});
}