/home/desid573/phewl.desidrivers.com.au/v3-utility-library-master/arcgislink/examples
Edit: /home/desid573/phewl.desidrivers.com.au/v3-utility-library-master/arcgislink/examples/layerquery.js (2974B)
var map = null;
// keep track of highlight for devices without mouse
var highlighted = null;
var iw = null;
var hStyle = {
fillColor: '#883333',
fillOpacity: 0.35,
strokeColor: '#FF0000',
strokeWeight: 3,
zIndex: 100,
strokeOpacity: 1
};
var style = {
fillColor: '#333388',
fillOpacity: 0.35,
strokeColor: '#FFFFFF',
strokeWeight: 1,
strokeOpacity: 1,
zIndex: 0
};
function init() {
var myOptions = {
zoom: 6,
center: new google.maps.LatLng(43, -106),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer';
var layer = new gmaps.ags.Layer(url + '/3');
var params = {
returnGeometry: true,
where: "STATE_NAME = 'Utah'",
outFields: ["NAME", "POP2000", "POP2007", "POP00_SQMI", "POP07_SQMI"],
overlayOptions: style
};
layer.query(params, processResultSet);
}
function processResultSet(rs) {
var fs = rs.features;
for (var i = 0, c = fs.length; i < c; i++) {
setupFeature(fs[i]);
}
}
function setupFeature(feat) {
var a = feat.attributes;
var html = "
" + a['NAME'] + "
" +
"2000 Population: " +
a['POP2000'] +
"
" +
"2000 Population per Sq. Mi.: " +
a['POP00_SQMI'] +
"
" +
"2007 Population: " +
a['POP2007'] +
"
" +
"2007 Population per Sq. Mi.: " +
a['POP07_SQMI'] +
'';
var g = feat.geometry[0];//V3 supports multiple rings, so should have only 1 element
var latlng = getPolyCenter(g);
g.setMap(map);
google.maps.event.addListener(g, 'mouseover', function() {
highlight(g, html, latlng);
});
google.maps.event.addListener(g, 'mouseout', function() {
g.setOptions(style);
if (iw) {
iw.close();
}
});
google.maps.event.addListener(g, 'click', function() {
highlight(g, html, latlng);
});
}
function getPolyCenter(poly) {
var paths, path, latlng;
var lat = 0;
var lng = 0;
var c = 0;
paths = poly.getPaths();
for (var j = 0, jc = paths.getLength(); j < jc; j++) {
path = paths.getAt(j);
for (var k = 0, kc = path.getLength(); k < kc; k++) {
latlng = path.getAt(k);
lat += latlng.lat();
lng += latlng.lng();
c++;
}
}
if (c > 0) {
return new google.maps.LatLng(lat / c, lng / c);
}
return null;
}
function highlight(g, html, latlng) {
if (highlighted) {
highlighted.setOptions(style);
}
g.setOptions(hStyle);
highlighted = g;
if (!iw) {
iw = new google.maps.InfoWindow({
content: html,
position: latlng,
maxWidth: 240
});
} else {
iw.setContent(html);
iw.setPosition(latlng);
}
iw.open(map);
}
window.onload = init;