addressSearch.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /**
  2. * @fileoverview 位置信息查询服务
  3. * @author Song.Huang
  4. * @version 1.0.0
  5. */
  6. define(function() {
  7. var addressSearch = function() {
  8. this.formatEarthLatLng = function(lat,lng){
  9. lng = lng%360;
  10. if(lng>180){
  11. lng = (lng%180)-180;
  12. }else if(lng<-180){
  13. lng = 180+(lng%180);
  14. }
  15. lat = lat%180;
  16. if(lat>90){
  17. lat = (lat%90)-90;
  18. }else if(lat<-90){
  19. lat = 90+(lat%90);
  20. }
  21. return [lat,lng];
  22. };
  23. /**
  24. * 通过经纬度二维数组进行地名和站点查询 [[116,36],[117,48]]
  25. */
  26. this.latlngToZDAndName = function(lnglat, callbackFunc) {
  27. var latlngString;
  28. var _this = this;
  29. $.each(lnglat, function(i, t) {
  30. t = _this.formatEarthLatLng(t[0],t[1]);
  31. if (i === 0) {
  32. latlngString = t[1] + ',' + t[0];
  33. } else {
  34. latlngString = latlngString + '|' + t[1] + ',' + t[0];
  35. }
  36. })
  37. $.ajax({
  38. url: onemapUrlConfig.weatherADSerch + "/weatherstation?data=%27" + latlngString + "%27",
  39. type: 'GET',
  40. dataType: 'jsonp'
  41. })
  42. .done(function(data) {
  43. ONEMAP.V.loading.loaded();
  44. callbackFunc(data);
  45. })
  46. .fail(function() {
  47. ONEMAP.V.loading.loaded();
  48. });
  49. },
  50. /**
  51. * 通过缩放等级和坐标查询位置信息
  52. * @param {[type]} options [latLng(经纬度数组[纬度,经度]) zoom(地图缩放比例)]
  53. * @param {[type]} callbackFunc [description]
  54. * @return {[type]} [description]
  55. */
  56. this.getAddressInfo = function(options, callbackFunc) {
  57. options.latLng = this.formatEarthLatLng(options.latLng[0],options.latLng[1]);
  58. var sUrl = onemapUrlConfig.addressSearchDataUrl + '/v1.0/address/near/' +
  59. '?z=' + options.zoom +
  60. '&lon=' + options.latLng[1] +
  61. '&lat=' + options.latLng[0];
  62. ONEMAP.V.loading.load();
  63. $.ajax({
  64. url: sUrl,
  65. type: 'GET',
  66. dataType: 'jsonp'
  67. })
  68. .done(function(data) {
  69. ONEMAP.V.loading.loaded();
  70. callbackFunc(data);
  71. })
  72. .fail(function() {
  73. ONEMAP.V.loading.loaded();
  74. });
  75. }
  76. };
  77. return addressSearch;
  78. })