首页 / 浏览问题 / WebGIS / 问题详情
根据经纬度设置点
20EXP 2023年09月12日
使用产品:iserver 11i 操作系统:win10x64 数据类型: postgre sql 问题详细描述:1、根据经纬度设置点,但没有显示,代码如下:var Icon = L.icon({iconUrl: myicon, iconSize: [25,41]}); this.iconlayer = L.marker([106.690510, 26.585544], { icon: Icon }).addTo(this.map) 问题重现步骤: 1.

1个回答

您好,

1.在leaflet里面,参数顺序为纬度、经度。建议改为 L.marker([26.585544, 106.690510]再试试呢。2.请检查地图的坐标系是否为经纬度坐标,保证marker和地图坐标系一致。

希望可以帮助到您!
460EXP 2023年09月12日
那如果要从地图上删除这个marker应该怎么写呢

您好,可以这样写:

var marker = L.marker([latitude, longitude]).addTo(map);

map.removeLayer(marker);

具体代码编写可以参考leaflet示例:Documentation - Leaflet - a JavaScript library for interactive maps (leafletjs.com)

希望可以帮助到您!

在多个点的情况下,removeLayer 不好使,代码

var data = [{latitude:24.909090, longitude:134.090909}, {latitude:26.909090, longitude:123.090909}, {latitude:22.909090, longitude:124.897867}]

data.forEach(item => {

this.markerLayer = L.marker([item.latitude, item.longitude],{icon:icon}).addTo(this.map)

})

这个时候用 this.map.removeLayer(this.markerLayer);没有反应
您好,这种情况建议建一个marker组存储marker。例如:

var markerList = [ ];

markerList.push(markerLayer);

featureLayerList.forEach(element => {          //清除每一个marker   存在 featureLayerList

  map.removeLayer(element);

  });
...