Google Maps API:在不重新加载地图的情况下关注并居中我的观察位置

Posted

技术标签:

【中文标题】Google Maps API:在不重新加载地图的情况下关注并居中我的观察位置【英文标题】:GoogleMaps API: Follow and Center my watchpostion without reloading the map 【发布时间】:2014-02-08 11:18:32 【问题描述】:

几个月以来,我一直在寻找解决方案。我发现了非常有趣的东西——比如 Google Maps Library Utilities,但没有什么可以帮助我。

我想通过使用 watchPosition 并在不重新加载地图的情况下跟随(中心)我的位置来获取我在谷歌地图上的位置。

每次我将位置集中在 watchPosition 上时,它都会重新加载地图。也许有一种方法可以叠加,但不幸的是,我缺乏这方面的知识。

最好的方法是使用 Google Maps Library Utilities 中的 Geomarker。但这里也一样。我无法居中。

也许任何人都可以帮助我提供一个可行的示例。

【问题讨论】:

【参考方案1】:
var map;
            var GeoMarker;
            function initialize() 
                var mapOptions = 
                    zoom: 12,
                    center: new google.maps.LatLng(-34.397, 150.644),
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                ;
                map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

                GeoMarker = new GeolocationMarker();
                GeoMarker.setCircleOptions(fillColor: '#808080');
                google.maps.event.addListenerOnce(GeoMarker, 'position_changed', function() 
                    map.setCenter(this.getPosition());
                    map.fitBounds(this.getBounds());
                );

                navigator.geolocation.watchPosition(function(position) 
                    var latitude = position.coords.latitude;
                    var longitude = position.coords.longitude;
                    var geolocpoint = new google.maps.LatLng(latitude, longitude);
                    map.setCenter(geolocpoint);
                );

                google.maps.event.addListener(GeoMarker, 'geolocation_error', function(e) 
                    alert('There was an error obtaining your position. Message: ' + e.message);
                );
                GeoMarker.setMap(map);
            

            google.maps.event.addDomListener(window, 'load', initialize);
            if(!navigator.geolocation) 
                alert('Your browser does not support geolocation');
            

【讨论】:

【参考方案2】:

您无需重新加载地图。

使用标记的setPosition-方法应用新位置(如果可用),使用地图的setCenter-方法应用新中心。

【讨论】:

以上是关于Google Maps API:在不重新加载地图的情况下关注并居中我的观察位置的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps API - 如何在不显示地图的情况下从自动完成获取纬度和经度?

Google Maps API v3 将地图重新​​定位到标记

地图加载后 Google Maps API v3 不会禁用滚轮

Google Maps API 重绘地理编码界限

通过 AJAX 加载 Google Maps API,控制台错误

如何使用 Google Maps Javascript API V3 在加载时设置 infoWindow 内容