123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /**
- * @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;
- })
|