问题描述:在地图中根据一个地名来检索该地名的经纬度信息
准备工作:相应的地图服务支持,包括地图数据的支持,arcgis的api包
代码展示:
//需要引入arcgis的api
require([
"esri/tasks/FindTask",
"esri/tasks/FindParameters",
"esri/tasks/QueryTask",
"esri/tasks/Query"
],function(FindTask,FindParameters,QueryTask,Query){
//第一中通过FindTask,它支持多个图层的查询
var f = new FindTask("http://server.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer");//arcgis的地图服务,这里只是一个实例
var params = new FindParameters();
params.layerIds = [0,1,2,3]; //图层的序号
params.searchFields = ["NAME"];//要查询的字段,可以是多个
params.searchText = "北京"; //要查询的内容,这个是一个模糊匹配,会把这个地图服务上所以以“北京”开头的地方都找出来
params.returnGeometry = true; //是否返回geometry属性值,注意本次要的经纬度就从在这个属性中
f.execute(params,showResults); //showResults 是回掉函数,查询返回的值就在这个回掉函数中
function showResults(results){
console.dir(results); //这个就是查询的结果集,打印出来看看下就清楚了
for(var i=0;i<results.length;i++){
var graphic = results[i]; //一个点的信息
var xy = grap