我在访问标记和地点的地理位置时遇到问题。
基本上我正在为位于地图中心位置的用户创建标记。然后我运行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);
}
,这也没有改变任何东西。
答案 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;
}
}