谷歌地图:鉴于Lat Long坐标

时间:2012-09-24 16:46:52

标签: maps

我有以下Lat Long坐标(在JS数组中),我们如何在这些坐标上绘制带有标记的Google Map。

请举一个简单的例子,因为API文档中的示例并没有给出确定的答案或对我来说太复杂。

43.82846160000000000000,-79.53560419999997000000

43.65162010000000000000,-79.73558579999997000000

43.75846240000000000000,-79.22252100000003000000

43.71773540000000000000,-79.74897190000002000000

提前致谢。

3 个答案:

答案 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

这是校园地图示例。

http://beta.gr-3.net/map-api/

最后,这是最简单的例子。一个标记图。查看源代码并重用它。希望它足以让你开始。

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));
}

DEMO

答案 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"
    }); 
}