Skip to content

Commit 4c778f1

Browse files
【fix】修复 几何查询用mapbox坐标或bounds查询时带上prjCoordSys 4326 review by songym
1 parent 1b2f9d8 commit 4c778f1

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/mapboxgl/services/FeatureService.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,12 @@ export class FeatureService extends ServiceBase {
216216
if (params.geometry) {
217217
if (params.geometry instanceof mapboxgl.LngLatBounds) {
218218
params.geometry = Util.toSuperMapPolygon(params.geometry);
219+
params.geometry.SRID = 4326;
219220
} else if (params.geometry instanceof mapboxgl.Point) {
220221
params.geometry = new GeometryPoint(params.geometry.x, params.geometry.y);
221222
} else if (params.geometry instanceof mapboxgl.LngLat) {
222223
params.geometry = new GeometryPoint(params.geometry.lng, params.geometry.lat);
224+
params.geometry.SRID = 4326;
223225
} else if (!(params.geometry instanceof Geometry)) {
224226
params.geometry = Util.toSuperMapGeometry(params.geometry);
225227
}

test/mapboxgl/services/GetFeaturesByGeometrySpec.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { FeatureService } from '../../../src/mapboxgl/services/FeatureService';
22
import { GetFeaturesByGeometryParameters } from '../../../src/common/iServer/GetFeaturesByGeometryParameters';
33
import { FetchRequest } from '../../../src/common/util/FetchRequest';
4+
import mapboxgl from 'mapbox-gl';
45

56
var url = GlobeParameter.dataServiceURL;
67
describe('mapboxgl_FeatureService_getFeaturesByGeometry', () => {
@@ -203,4 +204,26 @@ describe('mapboxgl_FeatureService_getFeaturesByGeometry', () => {
203204
done();
204205
});
205206
});
207+
it('GetFeaturesByGeometryParameters:prjCoordSys', (done) => {
208+
var sw = new mapboxgl.LngLat(-20, -20);
209+
var ne = new mapboxgl.LngLat(20, 20);
210+
var lngLatBounds = new mapboxgl.LngLatBounds(sw, ne);
211+
var geometryParam = new GetFeaturesByGeometryParameters({
212+
datasetNames: ['World:Countries'],
213+
geometry: lngLatBounds,
214+
spatialQueryMode: 'INTERSECT',
215+
});
216+
var service = new FeatureService(url);
217+
218+
spyOn(FetchRequest, 'commit').and.callFake((method, testUrl, params, options) => {
219+
var paramsObj = JSON.parse(params.replace(/'/g, '"'));
220+
expect(paramsObj.geometry.prjCoordSys.epsgCode).toEqual(4326);
221+
return Promise.resolve(new Response(JSON.stringify(getFeaturesResultJson)));
222+
});
223+
service.getFeaturesByGeometry(geometryParam, (result) => {
224+
serviceResult = result;
225+
geometryParam.destroy();
226+
done();
227+
});
228+
});
206229
});

0 commit comments

Comments
 (0)