gpt4 book ai didi

javascript - ESRI 自定义主页按钮 gis javascript

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

总体问题首先请阅读:当用户单击主页按钮时,如何删除 SelectedBusStops 和 SelectedBusRoutes 以及缩放到 map : map ?

这就是我正在尝试做的事情。我有一个 JavaScript 应用程序,它利用 ArcGIS API for JavaScript 以及其中的一些 Ajax 和 JQuery。我正在尝试自定义主页按钮或创建自己的主页按钮,这不仅仅是简单地缩放到初始范围。我尝试通过创建一个调用函数 goHome() 的按钮来自己完成此操作。然后,在该功能中,我做了一些事情,例如从列表中删除突出显示的选定路线,然后滚动到路线列表的顶部,并删除当用户单击公交车站以显示时间时可能已填充的任何公交车到达时间。到目前为止,我已经让它完成了我想做的所有事情,除了删除当前突出显示的(所选路线)以及与所选路线关联的当前公交车站,然后缩放到我的初始 map 范围。

我试图做一些事情,比如设置我想要修改的要素图层的 setDefinitionExpression,但由于此函数在我的代码中的位置,它无法看到它们。当我将此函数放在主函数中时,它给出了 ReferenceError: goHome is not Defined。所以我把它放在主函数之外,到目前为止一切正常,但不知道如何让 featureLayers 消失。它会给我一个错误:ReferenceError:未定义 selectedBusStopsselectedBusStops.setDefinitionExpression("路线为空");

当用户单击列表中的路线时,它将进入并设置定义表达式以仅显示所选路线。像这样:

selectedBusStops.setDefinitionExpression("Route like '%" + routeSlice + "%'");

这是我的FeatureLayers: ** 这是我无法在其他函数中使用它们的问题。我用“var”声明了它们,这使它们成为它们所在函数的本地函数。删除了“var”并解决了问题,我现在至少可以清除这些功能。 **

var selectedBusRoute = new FeatureLayer("http://PROD_RTC_SystemMap/MapServer/4", {
mode: FeatureLayer.MODE_SELECTION,
outFields: ["*"],
infoTemplate: selectedBusRouteTemplate
});
var selectedBusStops = new FeatureLayer("http://PROD_RTC_SystemMap/MapServer/0", {
mode: FeatureLayer.MODE_ONDEMAND,
outFields: ["*"],
infoTemplate: selectedBusStopsTemplate
});

我在想是否有一种方法可以以某种方式操纵 esri/dijit/HomeButton 来完成所有这一切,或者我是否走在正确的轨道上? Esri/github/homebutton

感谢您花时间阅读本文,我感谢所有的意见(即使是那些说我的代码看起来像 *# 的人)。

这是我所调用的函数的代码:

function goHome() {
// Reset the Accordian Content Panes and fix naming
var newTitle = "Bus Arrival Times";
dijit.byId("pane3").set("title", newTitle);
var container = dijit.byId("container");
container.selectChild("RTCBusroutes", true);

// This will remove old values in Bus Arrival Time pane so Bus Arrival Times will clear
var results = document.getElementById("results");
var rowCount = results.rows.length;
for (var x = rowCount - 1; x > 0; x--) {
results.deleteRow(x);
}

// Removes the Highlight from the currently selected Item in the RTC Bus Routes List pane
$('.highlight').removeClass('highlight');

// Scrolls to the top of the List in the RTC Bus Routes Content Pane List
$('#RTCBusroutes').scrollTop(0);

// Remove Currently Selected Bus Routes

// Remove Currently Selectes Bus Stops

// Zoom to Map Extent

}

这是我添加的按钮:

<button id="homeImg" onclick="goHome()">
<img id="myImg" src="img/home.png" />
</button>

主页按钮的 CSS #homeImg

/* for the Home Button CSS */

#homeImg {
position: absolute;
top: 138px;
left: 28px;
z-index: 8;
background-color: #888888;
opacity: 0.8;
filter: alpha(opacity=80);
cursor: pointer;
}

最佳答案

您可以通过调用featureLayer的.clear()方法来清除该featureLayer,然后sm将清除该图层中的所有图形。

如果您只想清除选择,请调用 .clearSelections() 方法。

这里有更多关于其他特征层方法的文档:

https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#methods

关于javascript - ESRI 自定义主页按钮 gis javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311557/

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