zoukankan      html  css  js  c++  java
  • openlayers 墨卡托与经纬度坐标转化

    前台方式

    第一种方式:

    1 var proj = new OpenLayers.Projection("EPSG:4326");
    2 var point = new OpenLayers.LonLat(-68, 42);
    3 point.transform(proj, map.getProjectionObject());

    第二种方式,通过替换坐标坐标进行实现

    var point = new OpenLayers.Bounds(-68, 40, -88, 52)
    point .transform(proj, map.getProjectionObject());

    转化后,定义地图坐标中心点位置使用setCenter方法

    map.setCenter(point,4);//参数(转化后的坐标,地图显示层级)

     后台

            //经纬度转墨卡托
          public Vector2D lonLat2Mercator(Vector2D lonLat)
            {
                Vector2D mercator = new Vector2D();
                double x = lonLat.X * 20037508.34 / 180;
                double y = Math.Log(Math.Tan((90 + lonLat.Y) * Math.PI / 360)) / (Math.PI / 180);
                y = y * 20037508.34 / 180;
                mercator.X = x;
                mercator.Y = y;
                return mercator;
            }
            //墨卡托转经纬度
            public Vector2D Mercator2lonLat(Vector2D mercator)
            {
                Vector2D lonLat = new Vector2D();
                double x = mercator.X / 20037508.34 * 180;
                double y = mercator.Y / 20037508.34 * 180;
                y = 180 / Math.PI * (2 * Math.Atan(Math.Exp(y * Math.PI / 180)) - Math.PI / 2);
                lonLat.X = x;
                lonLat.Y = y;
                return lonLat;
            }
    

      

  • 相关阅读:
    三路快排
    双路快排
    随机快排
    快速排序
    双向链表
    单向链表
    堆排序
    二分插入、bisect
    jmockit使用总结-MockUp重点介绍
    java拼接字符串、格式化字符串方式
  • 原文地址:https://www.cnblogs.com/hjxh/p/4346529.html
Copyright © 2011-2022 走看看