我是ArcGIS的新手。我正在使用API在地图上为位置添加书签。单击特定位置(例如,戈尔韦湾)后,地图将放大到该位置。
<script>
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.form.DropDownButton");
dojo.require("esri.map");
dojo.require("esri.dijit.Bookmarks");
dojo.require("esri/dijit/HomeButton");
dojo.require("dojo/domReady!");
var map, bookmarks, home;
function init() {
map = new esri.Map("map", {
basemap: "oceans",
center: [-7.5, 53],
zoom: 6
});
用户可以选择的位置列表是使用JavaScript生成的,如下例所示。您可以使用空间参考在地图上定位一个点,然后为其命名。
// Bookmarks can be specified as an array of objects with the structure:
// { extent: <esri.geometry.Extent>, name: <some string> }
var bookmarks_list = [{
"extent": {
"spatialReference": {
"wkid": 102100
},
"xmin": -1882000,
"ymin": 6638000,
"xmax": -316000,
"ymax": 7583000
},
"name": "Full View....."
}, {
"extent": {
"spatialReference": {
"wkid": 102100
},
"xmin": -1020761,
"ymin": 7009798,
"xmax": -996800,
"ymax": 7048100
},
"name": "Galway Bay"
}, {
"extent": {
"spatialReference": {
"wkid": 102100
},
"xmin": -939400,
"ymin": 6756000,
"xmax": -890400,
"ymax": 6785500
},
"name": "Cork Harbour"
}, {
"extent": {
"spatialReference": {
"wkid": 102100
},
"xmin": -1123000,
"ymin": 6839100,
"xmax": -1074100,
"ymax": 6868600
},
"name": "Tralee Bay"
} ];
// Create the bookmark widget
bookmarks = new esri.dijit.Bookmarks({
map: map,
bookmarks: bookmarks_list
}, dojo.byId('bookmarks'));
//show map on load
dojo.ready(init);
home.startup();
</script>
我的问题是,如何获取JavaScript“名称”值(例如,戈尔韦湾)并将其传递给ac#函数?您如何关联c#和JavaScript?我对此并不陌生,所以我将不胜感激任何建议,谢谢
正如您提到的C#和JavaScript,我的猜测是您将应用程序托管在.Net环境中。但是,JavaScript API仅在客户端运行,因此我不确定您要使用C#实际做什么吗?如果您希望服务器端响应客户端上发生的某些事情而做某事,那么您可能希望调用服务器上运行的Web服务器并为其提供任何客户端属性。我为此使用.Net Web API。
您可能想阅读更多有关以下内容的信息:
另一件事:我注意到您使用的是较旧的Dojo语法(v1.7之前的版本),考虑到ESRI甚至Dojo本身还没有将其所有教程都更新为1.7+语法,这是一个容易犯的错误。但是,如果您要开始一个新项目,那么从一开始就应该使用新语法。dojo站点上还有另一本关于差异的教程(与上面相同的链接,请向上一级)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句