aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gmap_arcgis.js25
1 files changed, 21 insertions, 4 deletions
diff --git a/gmap_arcgis.js b/gmap_arcgis.js
index d0bd721..07a4330 100644
--- a/gmap_arcgis.js
+++ b/gmap_arcgis.js
@@ -33,10 +33,10 @@ function gmapArcgis(config) {
}
},
- // TODO: support for clickable polygons
// Add polygons from a given ArcGIS MapServer Layer
showPolygon: function(params, store) {
- params.overlay = new gmaps.ags.MapOverlay(params['uri'], {
+ params.service = new gmaps.ags.MapService(params['uri']);
+ params.overlay = new gmaps.ags.MapOverlay(params.service, {
exportOptions: {
layerIds: params['layers'],
layerOption: 'show',
@@ -46,6 +46,23 @@ function gmapArcgis(config) {
params.overlay.setMap(this.map);
params.overlay.setOpacity(params.opacity);
+ // TODO: support for clickable polygons
+ // See https://google-maps-utility-library-v3.googlecode.com/svn/trunk/arcgislink/examples/identify.js
+ if (typeof params.identify != 'undefined') {
+ google.maps.event.addListener(this.map, 'click', function(point) {
+ params.identify.geometry = point.latLng;
+ params.identify.bounds = this.map.getBounds();
+
+ params.service.identify(params.identify, function(results, err) {
+ if (err) {
+ alert(err.message + err.details.join('\n'));
+ } else {
+ //addResultToMap(results, evt.latLng);
+ }
+ });
+ });
+ }
+
if (params.callback == undefined) {
// Default callback: remove the blockUI once the layer is shown
google.maps.event.addListener(params.overlay.getMapService(), 'update', function() {
@@ -60,7 +77,7 @@ function gmapArcgis(config) {
return params.overlay;
},
-
+
// Add a KML to the map
showKML: function(element) {
if (typeof this.config['kmls'][element].overlay == 'undefined') {
@@ -99,7 +116,7 @@ function gmapArcgis(config) {
if (this.config['layers'][element].overlayTime != undefined) {
this.showOverlay(this.config['layers'][element].overlayTime);
}
-
+
this.config['layers'][element].overlay = this.showPolygon(this.config['layers'][element]);
},