首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用leaflet API更新标记位置

使用leaflet API更新标记位置
EN

Stack Overflow用户
提问于 2013-01-06 00:30:27
回答 1查看 85.5K关注 0票数 38

我想用Leaflet API构建web应用程序。首先,我的用户使用IP进行地理定位,然后如果他接受,我会尝试使用HTML5地理定位更新他的位置(精度更高)。

我的问题是,地图上的标记位置没有更新,下面的代码失败了,没有错误。我尝试了数百种来自leaflet documentation的不同语法和方法来更新标记位置(即,setLatLng),但我没有成功。我想知道我的代码出了什么问题。

我的问题是这样解决的:

代码语言:javascript
复制
    var lat = (e.latlng.lat);
    var lng = (e.latlng.lng);
    var newLatLng = new L.LatLng(lat, lng);
    marker.setLatLng(newLatLng); 

旧代码是:

代码语言:javascript
复制
//initial IP based geolocation

var lat = google.loader.ClientLocation.latitude;
var lng = google.loader.ClientLocation.longitude;

//place marker on the map

var marker = L.marker([lat,lng]).addTo(map);

//start HTML5 geolocation 

map.locate({setView: true, maxZoom: 16});

function onLocationFound(e) {

    var marker = L.marker([e.latlng.lat,e.latlng.lng]).update(marker);
    alert ('New latitude is ' + e.latlng.lat)
}

map.on('locationfound', onLocationFound);
EN

回答 1

Stack Overflow用户

发布于 2014-03-24 14:00:22

尝试标记方法的update()它对我有效

代码语言:javascript
复制
var lat = (e.latlng.lat);
var lng = (e.latlng.lng);
marker.setLatLng([lat, lng]).update();  // Updates your defined marker position
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14173815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档