使用Google Maps API JS

时间:2017-01-13 23:58:48

标签: javascript google-maps geolocation

我在访问标记和地点的地理位置时遇到问题。

基本上我正在为位于地图中心位置的用户创建标记。然后我运行geolocation.watchPosition函数,我在其中更新userMarker位置。因此,watchPosition完成每个刻度,我将userMarker的位置更新为其当前位置。我也在使用我在给定半径范围内搜索的places做了类似的事情。搜索以watchPosition的每个刻度线运行,并为每个place提供标记。

从视觉上看,所有标记都位于正确的位置并在正确的位置更新,因此它们位于正确的位置。问题是,当我尝试使用console.log(userMarker.getPosition())将标记的位置打印到控制台时,我返回了标记的LatLng对象,但它是空的,看起来像这样:{{1} }。

我基本上只是想知道我做错了什么来访问标记位置以及为什么?这不仅仅是对象的方式,它肯定是我做错了。

以下是代码的一部分:

_.E {}

完整的js代码位于map.js下的github.com/tear727/newMap

PS:我也试过了function updateMap(){ //navigator is passed a callback to handle return position navigator.geolocation.watchPosition(watchPositionCallback); } /* HELPER FUNCTIONS AND CALLBACKS */ // callback for watchPosition() used to handle the returned position data // as well as run searches function watchPositionCallback(position){ var pos = { lat: position.coords.latitude, lng: position.coords.longitude } //new google maps LatLng object var currentLocation = new google.maps.LatLng(pos.lat, pos.lng); //update request object to be sent to nearBySearch() //with the currentLocation object as the specified location nearByChurchSearchRequest.location = currentLocation; nearByStoreSearchRequest.location = currentLocation; // center the map on the currentLocation object // and update userMarker position map.setCenter(currentLocation); userMarker.setPosition(currentLocation); console.log(userMarker.getPosition()); // returns _.E {} // initialize new PlacesServices placesChurchService = new google.maps.places.PlacesService(map); placesStoreService = new google.maps.places.PlacesService(map); // service methods used to search nearby queries based on the requests placesChurchService.nearbySearch(nearByChurchSearchRequest, searchCallback); placesStoreService.nearbySearch(nearByStoreSearchRequest, searchCallback); } ,这也没有改变任何东西。

1 个答案:

答案 0 :(得分:1)

调用LatLong对象上的方法

您对userMarker.getPosition()的调用会返回一个LatLng对象。

在此对象上使用.lat()和.lng(),如此处所示

https://developers.google.com/maps/documentation/javascript/reference#LatLng

floatingCellRenderer: function(params) {
    if (params.node.floating) {
        do_something_here_to_prevent_this_cell_editing;
    }
}