日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

深入浅出 Javascript API(五)--Query Find 查询

發布時間:2025/5/22 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出 Javascript API(五)--Query Find 查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 作者:Flyingis


??? 本文嚴禁擅自轉載或用于商業目的,如有需要請事先聯系作者:dev.vip#gmail.com

?

??? 查詢是webgis常用功能之一,基于地圖的查詢經歷了多種形式的演變,現在用什么形式來展現查詢已經沒有固定模式,在適合webgis范圍內,什么形式能夠滿足應用,就用什么形式的查詢。舉例描述一個最經典的場景,鼠標點擊地圖顯示一個TIP小窗口,顯示查詢對象的簡單信息,小窗口中提供一個"詳細信息"鏈接,點擊后彈出網頁顯示資料卡片。還有這樣的形式,如拉框選擇點要素,同時在地圖下方的DIV顯示出選擇點的屬性信息,這個在《ArcGIS Server 開發系列(五)--自定義 Toolbar 工具》通過ADF已經實現。Ags Javascript API如何完成這些功能呢?

?

??? 內容目錄:


1.Query查詢屬性數據(無地圖)
2.鼠標移動顯示Query查詢結果
3.Find查詢地圖,并在頁面下方顯示相應屬性數據

1.僅用Query查詢屬性,不返回地圖信息,此時就不再需要創建esri.layers.ArcGISMapServiceLayer對象來處理地圖,但是需要引入"esri.tasks.query",并創建QueryTask對象:

queryTask?=?new?esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5");
??? webgis查詢一般涉決定返回結果的參數,包括是否返回幾何圖形,查詢的屬性字段,查詢方式(默認"SPATIAL_REL_INTERSECTS"),查詢Where語句等,例如:
query?=?new?esri.tasks.Query();
query.returnGeometry?
=?false;
query.outFields?
=?["SQMI","STATE_NAME","SUB_REGION","POP2000","POP2007","MALES","FEMALES"];
??? 執行查詢,并將結果寫入回調函數showResults:
function?execute(stateName)?{
????query.text?
=?stateName;
????queryTask.execute(query,showResults);
}

??? 所有的結果都會寫入到showResults參數Featureset對象中,遍歷該對象得到我們想要的屬性結果。


??? 查詢方式:

?

2.鼠標移動顯示Query查詢結果是常用的查詢方式之一,最重要的就是利用了Ajax異步傳輸,將少量的信息顯示在一個Tip中,訪問效率高,體驗較好。這里我們可以決定,是默認指定一圖層區域要素進行hover查詢,還是鼠標點擊要查詢的要素后,再hover查詢,以實現前者為例,其他方式以此類推。


??? 查詢功能主要是這幾行代碼完成:
var?queryTask?=?new?esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3");
var?query?=?new?esri.tasks.Query();
query.returnGeometry?
=?true;
query.outFields?
=?["NAME",?"POP2000",?"POP2007",?"POP00_SQMI",?"POP07_SQMI"];
query.where?
=?"STATE_NAME?=?'South?Carolina'";
??? "query.text"和"query.where"區別在于,前者是通過"like"方式執行where查詢,后者是直接寫SQL語句。

??? TIP UI是一個InfoWindow
var?infoTemplate?=?new?esri.InfoTemplate();
infoTemplate.title?
=?"${NAME}";
infoTemplate.content?
=?"<b>2000?Population:?</b>${POP2000}<br/>"
?
+?"<b>2000?Population?per?Sq.?Mi.:?</b>${POP00_SQMI}<br/>"
?
+?"<b>2007?Population:?</b>${POP2007}<br/>"
?
+?"<b>2007?Population?per?Sq.?Mi.:?</b>${POP07_SQMI}";
map.infoWindow.resize(
205,125);
??? 鼠標移動到指定區域后,通過對鼠標onmousemove和onmouseout事件來顯示或隱藏查詢TIPs
dojo.connect(map.graphics,?"onMouseOver",?function(evt)?{
????
var?content?=?evt.graphic.getContent();
????map.infoWindow.setContent(content);
????
var?title?=?evt.graphic.getTitle();
????map.infoWindow.setTitle(title);
????evt.graphic.setSymbol(highlightSymbol);
????map.infoWindow.show(evt.screenPoint,map.getInfoWindowAnchor(evt.screenPoint));
}
);

dojo.connect(map.graphics,?
"onMouseOut",?function(evt)?{
????map.infoWindow.hide();
????evt.graphic.setSymbol(symbol);
}
);



?

?

3.Find 查詢,和Query功能類似,但使用的REST服務不同,Query需要指定具體的REST圖層服務,如"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services /Demographics/ESRI_Census_USA/MapServer/3",而Find僅需提供當前地圖服務"http: //sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty /ESRI_StatesCitiesRivers_USA/MapServer",然后通過屬性來控制對哪個圖層進行查找。

findTask?=?new?esri.tasks.FindTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer");
findParams?
=?new?esri.tasks.FindParameters();
findParams.returnGeometry?
=?true;
findParams.layerIds?
=?[0,1,2];
findParams.searchFields?
=?["CITY_NAME","NAME","SYSTEM","STATE_ABBR","STATE_NAME"];

?

??? 這樣做的好處是,可以方便的對多個圖層進行查詢,js代碼只需要設置layerIds,在此之前添加"dojo.require("esri.tasks.find");"。頁面下方顯示查詢結果,通過Ajax刷新,這里可以利用dojox.grid 完成這個過程,Find搜索只能用like方式,并且不區分大小寫,這是和Query另外一個區別。

?

轉載于:https://www.cnblogs.com/flyingis/archive/2008/07/29/1255373.html

總結

以上是生活随笔為你收集整理的深入浅出 Javascript API(五)--Query Find 查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 抱着老师的嫩臀猛然挺进视频 | 极品久久久 | 精品久久久一区 | 97人人爽| 国产日韩欧美一区二区 | 久久99久久99精品 | 久久久久极品 | 日本午夜视频在线观看 | 色悠久| 久久接色 | 国产精品麻豆果冻传媒在线播放 | 国产成人无码www免费视频播放 | www.国产三级 | 欧美a图 | 白洁av| 热re99久久精品国产99热 | 国产伦精品一区二区三区免费迷 | 欧美专区日韩专区 | 一区二区三区四区高清视频 | 中文在线а√在线8 | √天堂在线| 久久精品一区二区免费播放 | 内射无码专区久久亚洲 | 国产美女免费网站 | 国内精久久久久久久久久人 | 四虎影视成人 | 亚洲天堂小说 | 精品日韩一区二区三区四区 | 精品人人妻人人澡人人爽牛牛 | h无码动漫在线观看 | 夜晚福利 | 亚洲一区二区精品在线观看 | 特级a毛片| 撸大师av | 成年人看的免费视频 | av中文字幕一区二区 | 久久人人爽人人爽人人片 | 日本不卡一| 日韩天堂一区 | 91亚色视频 | 麻豆69| 69久久成人精品 | 国产xxx视频| 日韩av不卡在线 | 亚洲av激情无码专区在线播放 | 岛国精品在线 | 蜜臀久久久久久999 大陆熟妇丰满多毛xxxⅹ | 日韩av一二三 | 福利在线视频观看 | 999国产在线 | 在线观看黄色片 | 亚洲xxxx天美 | 国产性猛交╳xxx乱大交 | 99久视频| 日本久久视频 | 超碰最新上传 | 一区视频在线 | 深夜福利视频导航 | 色一区二区 | 午夜神马福利 | 狠狠夜夜 | 欧美特黄一区二区三区 | 日本人妻一区二区三区 | 日本黄色一区 | 九色在线播放 | 五月天黄色网 | 美女露出让男生揉的视频 | 乐播av一区二区三区 | 在线免费观看黄视频 | 欧美人妖乱大交 | 午夜大片在线观看 | 色婷婷伊人 | 91网站在线播放 | 日本jizz在线观看 | 美女啪啪网址 | 老司机成人网 | 香蕉av一区二区三区 | www.污视频| 国产成人三级一区二区在线观看一 | 欧美 亚洲 激情 一区 | 成人性做爰aaa片免费看不忠 | 成人毛片视频网站 | 一二三四国产精品 | 91精品国产成人 | 一区二区三区精品 | 免费黄网站在线观看 | 综合网久久 | 91黄址| 亚洲天堂精品在线观看 | 国产一区影院 | 亚洲午夜精品久久久久久人妖 | 国产精品3 | 成人午夜剧场视频网站 | 成年人黄国产 | 精品人妻一区二区三区免费 | 中文字幕一区二区人妻痴汉电车 | 操碰97| 国产成人a亚洲精v品无码 | 国产精品久久久久久久午夜 |