1

我一直在使用 google maps API 在一个网站上工作,我正在从头开始制作自己的地图(很像“幻想”世界地图)。

我想要的是,当用户查看某个区域(不仅以单个点为中心,而且可能是一个宽度为多个“屏幕”的区域)时,该位置将显示在地图上,位于放置在最有可能的地图,并且这个位置会随着用户滚动并进入另一个区域而改变。

例如,当用户在沙漠区域上滚动时,div 会显示“沙漠”,但当屏幕的中心在海面上移动时,它会显示“海”等。

我想这将涉及定义许多纬度/经度点之间的区域的“位置”,并跟踪用户的位置。

非常感谢任何帮助,谢谢!

4

1 回答 1

1

我找到了这个问题的答案,所以我想把它贴在这里以备后人之用,以防其他人也想做同样的事情,或者如果有人想改进它。

我使用 LatLngBounds 对象在地图上定义了 2 个区域,如下所示:

    var desert = new google.maps.LatLngBounds(
                new google.maps.LatLng(27.694746, 28.294032),
                new google.maps.LatLng(62.921001, 78.391689)
                );
            var plains = new google.maps.LatLngBounds(
                new google.maps.LatLng(82.171166, 131.930577),
                new google.maps.LatLng(84.144231, 105.541417)
                ); 

然后使用一个函数来跟踪屏幕中心坐标并检测它们是否在这些边界内。如果是这样,将更新 div 的内部 HTML(放置在地图上)。

            google.maps.event.addListener(map, 'center_changed', function() {
            trackCenter = map.getCenter();
    if (desert.contains(trackCenter)) {
    var place = 'Sands of Time';
    }
    else if (plains.contains(trackCenter)) {
    var place = "Plains of Kh'rrnthar";
    }
    else {
    place = 'the Frozen Sea';
    }
    document.getElementById('locationlabel').innerHTML = '<p>Location ~ ' + place + '</p>';
            });

我希望这对某人有用,问候

于 2013-10-04T17:14:36.340 回答