/** * @fileoverview 行政区域查询 * @author Song.Huang * @version 1.0.0 */ define(function(){ var regionSearch = function() { this.formatEarthLatLng = function(lat,lng){ lng = lng%360; if(lng>180){ lng = (lng%180)-180; }else if(lng<-180){ lng = 180+(lng%180); } lat = lat%180; if(lat>90){ lat = (lat%90)-90; }else if(lat<-90){ lat = 90+(lat%90); } return [lat,lng]; }; /** * 通过坐标查询 父级市县和下级市县 * @param {[type]} options [(lat纬度,lon经度 zoom(地图缩放等级)] * @param {[type]} callbackFunc [回调方法] * @return {[type]} [description] */ this.getRegionInfo = function(options, callbackFunc) { options.latLng = this.formatEarthLatLng(options.latLng[0],options.latLng[1]); var sUrl = onemapUrlConfig.regionSearchDataUrl + '/v1.0/area/name/'+ '?z=' + options.zoom + '&lon=' + options.latLng[1] + '&lat=' + options.latLng[0]; ONEMAP.V.loading.load(); $.ajax({ url: sUrl, type: 'GET', dataType: 'jsonp' }) .done(function(data) { ONEMAP.V.loading.loaded(); callbackFunc(data); }) .fail(function() { ONEMAP.V.loading.loaded(); }); }; /** * 通过pac查询 所属区域信息 * @param {[type]} options [(pac] * @param {[type]} callbackFunc [回调方法] * @return {[type]} [description] */ this.getPacRegionInfo = function(options, callbackFunc) { options.latLng = this.formatEarthLatLng(options.pac); var sUrl = onemapUrlConfig.regionSearchDataUrl + '/v1.0/area/name2/'+ '?pac=' + options.pac; ONEMAP.V.loading.load(); $.ajax({ url: sUrl, type: 'GET', dataType: 'jsonp' }) .done(function(data) { ONEMAP.V.loading.loaded(); callbackFunc(data); }) .fail(function() { ONEMAP.V.loading.loaded(); }); }; /** * 通过经纬度和省市级编号查询边界点 * @param latLng {LatLng} 坐标 * @param demand {Number} 省市级编号 4-省 5-市 6-县 * @param callbackFunc {Function} 回调方法 */ this.getRegionBoundary = function(options, callbackFunc) { options.latLng = this.formatEarthLatLng(options.latLng[0],options.latLng[1]); var sUrl = onemapUrlConfig.regionSearchDataUrl + '/v1.0/area/edge/'+ '?lon=' + options.latLng[1] + '&lat=' + options.latLng[0] + '&scale=' + options.demand; ONEMAP.V.loading.load(); $.ajax({ url: sUrl, type: 'GET', dataType: 'jsonp' }) .done(function(data) { ONEMAP.V.loading.loaded(); callbackFunc(data); }) .fail(function() { ONEMAP.V.loading.loaded(); }); } }; return regionSearch; })