1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- var layerXClickEvent = 0;
- var layerYClickEvent = 0;
- L.TileLayer.BetterWMS = L.TileLayer.WMS.extend({
-
- onAdd: function (map) {
- // Triggered when the layer is added to a map.
- // Register a click listener, then do all the upstream WMS things
- L.TileLayer.WMS.prototype.onAdd.call(this, map);
- map.on('click', this.getFeatureInfo, this);
- },
-
- onRemove: function (map) {
- // Triggered when the layer is removed from a map.
- // Unregister a click listener, then do all the upstream WMS things
- L.TileLayer.WMS.prototype.onRemove.call(this, map);
- map.off('click', this.getFeatureInfo, this);
- },
-
- getFeatureInfo: function (evt) {
- // Make an AJAX request to the server and hope for the best
- var url = this.getFeatureInfoUrl(evt.latlng),
- showResults = L.Util.bind(this.showGetFeatureInfo, this);
-
- $.ajax({
- url: url,
- datatype: 'application/json',
- success: function (data, status, xhr) {
- var err = typeof data === 'string' ? null : data;
- showResults(err, evt.latlng, data);
- },
- error: function (xhr, status, error) {
- showResults(error);
- }
- });
-
- },
-
- getFeatureInfoUrl: function (latlng) {
-
- var point = this._map.latLngToContainerPoint(latlng, this._map.getZoom()),
- size = this._map.getSize(),
- params = {
- request: 'GetFeatureInfo',
- service: 'WMS',
- srs: 'EPSG:4326',
- styles: this.wmsParams.styles,
- transparent: this.wmsParams.transparent,
- version: this.wmsParams.version,
- format: this.wmsParams.format,
- bbox: this._map.getBounds().toBBoxString(),
- height: size.y,
- width: size.x,
- layers: this.wmsParams.layers,
- query_layers: this.wmsParams.layers,
- feature_count: 1,
- info_format: 'application/json'
- };
-
- params[params.version === '1.3.0' ? 'i' : 'x'] = point.x;
- params[params.version === '1.3.0' ? 'j' : 'y'] = point.y;
-
- return this._url + L.Util.getParamString(params, this._url, true);
- //return "{{url('api_feature_json')}}" + L.Util.getParamString(params, this._url, true);
- },
-
- showGetFeatureInfo: function (err, latlng, content) {
- //customShowFeature(this._map, err, latlng, content);
- }
- });
- L.tileLayer.betterWms = function (url, options) {
- return new L.TileLayer.BetterWMS(url, options);
- };
|