如何在谷歌地图上显示多个位置?

7

我有多组经纬度数据,想在谷歌地图上用图钉显示它们。

如何使用谷歌地图API实现此功能?

2个回答

9
你需要迭代数组,为每对数据创建一个新的Marker实例。很简单:
<script>
    var map = new google.maps.Map(document.getElementById('map'), {
        center: new google.maps.LatLng(55.378051, -3.435973),
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        zoom: 8
    });

    var locations = [
        new google.maps.LatLng(54.97784, -1.612916),
        new google.maps.LatLng(55.378051, -3.435973])
        // and additional coordinates, just add a new item
    ];

    locations.forEach(function (location) {
        var marker = new google.maps.Marker({
            position: location,
            map: map
        });
    });
</script>

这适用于任何数量的纬度/经度对;只需将新项目添加到locations数组中即可。


好主意!我的情况是我有一堆需要转换成坐标的位置名称。这些位置名称是从搜索引擎的搜索结果文档中提取出来的。输入是文档的自由文本,输出是一个地图,显示那些位置名称的图钉。此 JavaScript 仅接受数组(固定数据库)作为输入,在上述情况下可以吗?非常感谢。 - Jun
你的位置名称是否有特定格式,还是直接从搜索引擎结果中以原始文档中的任何格式提取的文本? - Martin Bean
例如,在谷歌的搜索结果中,可能会包含包含地理位置信息的文本文档。首先,我想要找到这些位置,然后如果可能的话,调用Web服务将名称翻译为存储在某个地方的坐标。之后,调用Google地图API将这些名称显示为地图上的标记。 - Jun
你想要复制谷歌的搜索结果页面吗? - Martin Bean
有点像。我需要在一个结果文档中查找地理位置名称,并将其与地理位置名称数据库进行比对。这是一切的基础。您有什么想法吗? - Jun
如果这是用户提交的数据,那么它可能以任何格式存在;这需要一些严肃的数据挖掘技能,并且超出了可以在 Stack Overflow 评论中描述的范围。 - Martin Bean

0

你可以这样做

   var map = new GMap2(document.getElementById("map_canvas"));
    map.addControl(new GSmallMapControl());
    map.setCenter(new GLatLng(37.4419, -122.1419), 13);

    // Create our "tiny" marker icon
    var blueIcon = new GIcon(G_DEFAULT_ICON);
    blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";

    // Set up our GMarkerOptions object
    markerOptions = { icon:blueIcon };

    // Add 10 markers to the map at random locations
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();
    for (var i = 0; i < 10; i++) {
      var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
        southWest.lng() + lngSpan * Math.random());
      map.addOverlay(new GMarker(point, markerOptions));
    }

我从谷歌API文档中选取了这个例子,他们展示了如何使用经纬度来显示事物。

详细信息请参考以下链接:

使用谷歌API显示标记点

尽管我使用的是已被弃用的v2版本,但使用的概念基本相同。


我目前正在尝试从搜索引擎返回的结果文档中提取地理位置名称,并像地图上的标记一样显示它们。因此,我有一些需要转换为坐标的位置名称,然后调用谷歌地图来显示图像。有什么想法吗? - Jun
你能详细说明你的需求吗?因为在你的问题中提到了纬度和经度,所以调用Google地图服务并向其传递一个点并不难,该点只是基于纬度和经度进行计算。 - Umesh Awasthi
例如,在谷歌的搜索结果中,可能会包含包含地理位置信息的文本文档。首先,我想要找到这些位置,然后如果可能的话,调用Web服务将名称翻译为存储在某个地方的坐标。之后,调用Google地图API将这些名称显示为地图上的标记。 - Jun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接