zoukankan      html  css  js  c++  java
  • openlayer 坐标系转换

    常用坐标系

    'EPSG:4326':WGS84经纬度球面坐标系,GPS坐标就是这种,如 118 32是南京。
    'EPSG:3857':WGS84的墨卡托投影坐标系。

    //相互之间可以转换。请注意ol版本,看看是否支持该方法
    ol.proj.fromLonLat([118,32])=[13135699.913606284, 3763310.6271446524];
    ol.proj.toLonLat([13135699.913606284, 3763310.6271446524])=[118,32];
    平常webgis中几乎都是用墨卡托投影的,如百度,高德,谷歌的地图都是墨卡托投影的地图。


     1 /**
     2  * 墨卡托转经纬度,墨卡托投影坐标系(米)
     3  * @param {*} mercator  mercator={x,y} x就是lon ,y 应该是 lat 
     4  *  PI:3.1415926535897932384626;
     5  */
     6 const mercatorTolonlat = function(mercator) {
     7     let lonlat = { lon: 0, lat: 0 };
     8     let x = (mercator.x / 20037508.34) * 180;
     9     let y = (mercator.y / 20037508.34) * 180;
    10     y = (180 / Math.PI) * (2 * Math.atan(Math.exp((y * Math.PI) / 180)) - Math.PI / 2);
    11     lonlat.lon = x;
    12     lonlat.lat = y;
    13     return lonlat;
    14 };
    15 /**
    16  * 经纬度转墨卡托
    17  * @param {*} lonlat lonlat = {lon,lat}
    18  */
    19 const lonlatToMercator = function(lonlat) {
    20     var mercator = {};
    21     let x = (lonlat.lon * 20037508.34) / 180;
    22     let y = Math.log(Math.tan(((90 + lonlat.lat) * Math.PI) / 360)) / (Math.PI / 180);
    23     y = (y * 20037508.34) / 180;
    24     mercator.x = x;
    25     mercator.y = y;
    26     return mercator;
    27 };
     
  • 相关阅读:
    另一种逆元的求解方法
    SSHFS使用笔记
    HDU 2612 Find a way (BFS)
    POJ 3984 迷宫问题 (BFS + Stack)
    计蒜客 疑似病毒 (AC自动机 + 可达矩阵)
    HUD 1426 Sudoku Killer (DFS)
    计蒜客 成绩统计 (Hash表)
    计蒜客 劫富济贫 (Trie树)
    POJ 2251 Dungeon Master (BFS)
    [IB]Integration Broker 是如何处理传入的请求(Part 2)
  • 原文地址:https://www.cnblogs.com/luoxuemei/p/13564068.html
Copyright © 2011-2022 走看看