c6e1ff0ff3d4f24b896a41baeea1442471793c7d.svn-base 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {mapConfig} from '../config/mapConfig'
  2. /**
  3. * 根据不同坐标系,自动判断进行何种转换
  4. * @param {*} poi {x:'',y:''}
  5. */
  6. export function _longLatTransform(poi){
  7. if(mapConfig.wkid == '102100' || mapConfig.wkid == '3857'){
  8. return _getLngLat(poi)
  9. }else{
  10. return poi;
  11. }
  12. }
  13. /**
  14. * 墨卡托转经纬度
  15. * @param poi 墨卡托
  16. * @returns {{}}
  17. * @private
  18. */
  19. export function _getLngLat(poi){
  20. var lnglat = {};
  21. lnglat.x = poi.x/20037508.34*180;
  22. var mmy = poi.y/20037508.34*180;
  23. lnglat.y = 180/Math.PI*(2*Math.atan(Math.exp(mmy*Math.PI/180))-Math.PI/2);
  24. return lnglat;
  25. }
  26. export function _getLng(x){
  27. var lng;
  28. lng = x/20037508.34*180;
  29. return lng;
  30. }
  31. export function _getLat(y){
  32. var lat;
  33. var mmy = y/20037508.34*180;
  34. lat = 180/Math.PI*(2*Math.atan(Math.exp(mmy*Math.PI/180))-Math.PI/2);
  35. return lat;
  36. }
  37. /**
  38. * 经纬度转墨卡托
  39. * @param poi 经纬度
  40. * @returns {{}}
  41. * @private
  42. */
  43. export function _getMercator(poi) {//[114.32894, 30.585748]
  44. var mercator = {};
  45. var earthRad = 6378137.0;
  46. // console.log("mercator-poi",poi);
  47. mercator.x = poi.lng * Math.PI / 180 * earthRad;
  48. var a = poi.lat * Math.PI / 180;
  49. mercator.y = earthRad / 2 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a)));
  50. // console.log("mercator",mercator);
  51. return mercator; //[12727039.383734727, 3579066.6894065146]
  52. }