gpt4 book ai didi

javascript - 在美国 map 上保存所有 "features"的 Leaflet JS 对象在哪里?

转载 作者:行者123 更新时间:2023-12-03 10:07:58 25 4
gpt4 key购买 nike

我正在与 Leaflet US map example 合作我遇到一种情况,我需要在 map 页面加载时突出显示一个状态。

突出显示代码相当简单(这直接来自 map example code 并且工作正常):

function highlightFeature(e) {
var layer = e.target;

layer.setStyle({
weight: 5,
color: '#666',
});

if (!L.Browser.ie && !L.Browser.opera) { layer.bringToFront(); }
}

我的挑战是,当用户将鼠标滑过某个状态时,会调用此代码 - 这会生成鼠标悬停事件,然后将该事件 (e) 传递给函数,并且该函数可以使用该事件中的详细信息来找出用户指向的状态。然而,当页面加载时,本身没有事件。我不知道这些状态存储在哪里。保存所有状态的 JS 对象在哪里/是什么?

我猜我的代码最终会是这样的......

// on page load, highlight the active state
var activeState = 'Arizona';

// loop through each state and find the one where
// feature.properties.name == activeState
// ...???...

// highlight it by using setStyle() method

我的问题是我不知道存储所有状态的 JS 对象。一旦我有了这个,我认为剩下的就是找到正确的状态并使用 setStyle() 的问题,就像你在上面的突出显示函数中看到的那样。

最佳答案

当您添加 GeoJSON 图层时,您可以迭代每个要素,为其提供初始属性。大致如下:

L.geoJson(JSON.parse(data.geoData), {
style: function (feature) {
if ( feature.stateName === activeState ) {
return styleForActiveState;
} else {
return styleForNormalState;
}});

关于javascript - 在美国 map 上保存所有 "features"的 Leaflet JS 对象在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com