如何根据当前位置获取地图中可见的极值坐标?

时间:2014-09-01 06:24:34

标签: javascript google-maps google-maps-api-3

Holla ....我必须找到当前基于我当前位置坐标的地图中可见的极端坐标。 我在我的网站上添加了一张谷歌地图。

我设置了zoom level to 6& maximum zoom value to 8&我的地图中有minimum zoom value to 2

我有centered my map based on my current location

为了获得我当前位置的坐标,我使用了Maxmind的geoip服务。

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>
<script language="JavaScript">var laa=geoip_latitude();</script>
<script language="JavaScript">var lonn=geoip_longitude();</script>

获得我当前的位置后,我使用这些值来居中我的地图。 这是我用来显示的Javascript代码&amp;中心地图。

<script>
        //map included.
        function initialize()
        {
            var myLatlng=new google.maps.LatLng(laa,lonn);
            var mapProp = {
                center: new google.maps.LatLng(laa,lonn),
                zoom:6,
                maxZoom: 8,
                minZoom:2,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
            var image = 'mapmarkers/you-are-here-2.png';

            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                title: 'I am Here.',
                icon: image
            });
        }

        function loadScript()
        {
            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false&callback=initialize";
            document.body.appendChild(script);
        }
        window.onload = loadScript;

    </script>

用于在我的网页中包含地图的HTML代码是:

<div id="googleMap" style="width:900px;height:500px;">

</div>

enter image description here

我附上了地图的截图。 我添加了一个绿色标记来识别我当前的位置。现在基于此,我想找到我用红色标记(圈出)的4个极端坐标。 我不知道怎么做到这一点。任何人的提示? 格拉西亚斯。 :)

我想在用户根据鼠标悬停或鼠标按下功能放大或缩小时找到极值坐标。 最糟糕的是,IDK如何实现这一点。

1 个答案:

答案 0 :(得分:1)

使用getBounds()方法。 https://developers.google.com/maps/documentation/javascript/reference#Map

bounds_changed事件监听器中使用它。这应该适合你的需要。

google.maps.event.addListener(map, 'bounds_changed', function () {

    var bounds = map.getBounds();

    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
});

修改: JSFiddle demo

通过这个,您将能够计算其他2个点。希望这会有所帮助。