首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Mapbox标记添加ID

向Mapbox标记添加ID
EN

Stack Overflow用户
提问于 2016-04-20 01:15:46
回答 3查看 2.7K关注 0票数 2

我试图向每个标记添加一个id,以便在使用JQuery而不是内置的弹出功能单击标记时触发一个模态窗口。我想用属性"id“填充id

我知道我需要递归地遍历并添加ids,但我不想知道如何实现这一点。我该怎么做呢?

代码语言:javascript
复制
var geojson = [{
  "type": "Feature",
  "geometry": {
    "coordinates": [-86.781602, 36.162664],
    "type": "Point"
  },
  "properties": {
    "id": 001,
    "title": "POI #1",
    "image": "http://lorempixel.com/image_output/city-h-c-524-822-2.jpg",
    "filter-1": true,
    "filter-2": false,
    "filter-3": false,
    "filter-4": true,
    "filter-5": false,
    "marker-color": "#1087bf",
    "marker-size": "medium",
    "marker-symbol": ""
  }
}];

JSFiddle

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-26 00:47:52

您需要执行一个for循环。我用正确的密码更新了你的小提琴循环遍历geojson变量的长度,添加一个名为propertiesID的新字段,然后将其设置为properties加上id字段,从而得到properties1properties2等。

代码更改可以在小提琴的第90行找到。

代码语言:javascript
复制
for (var i=0; i<geojson.length; i++){
    geojson[i].properties.propertiesID = "properties" + geojson[i].properties.id

    //Logs out each object's properties in your array
    console.log(geojson[i].properties)
}
票数 0
EN

Stack Overflow用户

发布于 2021-09-05 07:54:43

这是一个使用Mapbox的快速攻击。我创建了一个默认标记,只想要一种快速更改光标的方法,而不需要进行额外的编码。

下面是创建标记的代码:

代码语言:javascript
复制
this.marker = new mapboxgl.Marker({
  draggable: true,
  color: "#D80739",
}).setLngLat(centre);

我在上面添加了一个ID:

代码语言:javascript
复制
this.marker._element.id = "my-marker";

然后使用CSS ID选择器进行样式设置:

代码语言:javascript
复制
#my-marker {
  cursor: pointer;
}
票数 1
EN

Stack Overflow用户

发布于 2016-04-20 03:47:02

也许不是一个有效的解决方案,但它在这里。

JSFiddle

代码语言:javascript
复制
for (var key in geojson) {
  if (geojson.hasOwnProperty(key)) {
    // console.log(key + " -> " + geojson[key]);
    var poi = geojson[key];
    var marker_id = poi.properties.id;
    var latitude = poi.geometry.latitude;
    var longitude = poi.geometry.longitude;
    var filterOne = poi.properties.filterOne;

    // render marker
    markers[poi.properties.id] = L.marker([latitude, longitude],{
      filterOne: poi.properties.filterOne,
      filterTwo: poi.properties.filterTwo,
      filterThree: poi.properties.filterThree,
      name: poi.properties.name
    }).addTo(map);

    //assign id
    markers[poi.properties.id]._icon.id = poi.properties.id;
  }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36732176

复制
相关文章

相似问题

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