您的位置:首页 > Web前端 > JavaScript

arcgis javascript api identify 查询功能一例

2013-04-12 19:48 357 查看
arcgis javascript api identify 查询功能一例

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9, IE=10">

<!--The viewport meta tag is used to improve the presentation and behavior of the samples

on iOS devices-->

<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">

<title>Identify with Popup</title>

<link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.4/js/esri/css/esri.css">

<style>

html, body, #map {

height:100%;

width:100%;

margin:0;

padding:0;

}

</style>

<script>var dojoConfig = { parseOnLoad: true };</script>

<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.4/"></script>

<script>

dojo.require("esri.map");

dojo.require("esri.dijit.Popup");

var map;

var identifyTask, identifyParams;

function init() {

//setup the popup window

var popup = new esri.dijit.Popup({

fillSymbol: new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25]))

}, dojo.create("div"));

map = new esri.Map("map", {

basemap: "satellite",

center: [-83.275, 42.573],

zoom: 18,

infoWindow: popup

});

dojo.connect(map, "onLoad", mapReady);

var landBaseLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/BloomfieldHillsMichigan/Parcels/MapServer",{opacity:.55});

map.addLayer(landBaseLayer);

}

function mapReady(map){

dojo.connect(map,"onClick",executeIdentifyTask);

//create identify tasks and setup parameters

identifyTask = new esri.tasks.IdentifyTask("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/BloomfieldHillsMichigan/Parcels/MapServer");

identifyParams = new esri.tasks.IdentifyParameters();

identifyParams.tolerance = 3;

identifyParams.returnGeometry = true;

identifyParams.layerIds = [0,2];

identifyParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_ALL;

identifyParams.width = map.width;

identifyParams.height = map.height;

}

function executeIdentifyTask(evt) {

identifyParams.geometry = evt.mapPoint;

identifyParams.mapExtent = map.extent;

var deferred = identifyTask.execute(identifyParams);

deferred.addCallback(function(response) {

// response is an array of identify result objects

// Let's return an array of features.

return dojo.map(response, function(result) {

var feature = result.feature;

feature.attributes.layerName = result.layerName;

if(result.layerName === 'Tax Parcels'){

console.log(feature.attributes.PARCELID);

var template = new esri.InfoTemplate("", "${Postal Address} <br/> Owner of record: ${First Owner Name}");

feature.setInfoTemplate(template);

}

else if (result.layerName === 'Building Footprints'){

var template = new esri.InfoTemplate("", "Parcel ID: ${PARCELID}");

feature.setInfoTemplate(template);

}

return feature;

});

});

// InfoWindow expects an array of features from each deferred

// object that you pass. If the response from the task execution

// above is not an array of features, then you need to add a callback

// like the one above to post-process the response and return an

// array of features.

map.infoWindow.setFeatures([ deferred ]);

map.infoWindow.show(evt.mapPoint);

}

dojo.ready(init);

</script>

</head>

<body>

<div id="map"></div>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐