【问题标题】:Google Maps: Given the Lat Long coordinates谷歌地图:给定经纬度坐标
【发布时间】:2012-09-24 16:46:51
【问题描述】:

我有以下经纬度坐标(在 JS 数组中),我们如何在这些坐标上绘制带有标记的谷歌地图。

请举一个简单的例子,因为 API 文档中的例子并没有真正给出结论性的答案,或者对我来说太复杂了。

43.82846160000000000000, -79.53560419999997000000

43.65162010000000000000, -79.73558579999997000000

43.75846240000000000000, -79.22252100000003000000

43.71773540000000000000, -79.74897190000002000000

提前致谢。

【问题讨论】:

    标签: maps


    【解决方案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.

    【讨论】:

    • 您不必引用外部数组来访问您的标记值。在标记单击事件处理程序中使用“this”。这样您就可以从正确的标记对象访问所有内容
    【解决方案2】:

    我使用过谷歌地图,如果您只需要放置一些标记(确保您使用的是 API v3),v2 已被贬值并且会在某个时候脱落。接下来,您的纬度/经度坐标。它们需要缩减为 9 或 10 个字符。当我使用超长纬度/经度坐标值时,我很不走运。

    Google 有一个不错的工具,可以让您使用它来构建地图。从这里开始:

    https://developers.google.com/maps/documentation/javascript/

    意识到您将需要您的虚拟主机域上的密钥。您可以在这里获取您的密钥:

    https://developers.google.com/maps/signup

    一长串演示,包含 65 个 v3 API 示例。

    https://developers.google.com/maps/documentation/javascript/demogallery

    在演示中,我发现这个例子看起来很接近。通过查看源代码重用您找到的代码。您可以通过此链接查看纬度/经度坐标对及其调用方式。

    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

    我希望这一切对你有所帮助。

    【讨论】:

      【解决方案3】:

      首先,您将创建 google maps 对象,在 head 标记中的某处您将侦听 ready 事件,并且在处理程序中有:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-18
        • 1970-01-01
        • 2018-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多