奥维互动地图 墨卡托(Mercator)投影 最新资源

墨卡托(Mercator)投影

奥维互动地图 墨卡托(Mercator)投影 最新资源_第1张图片
无反代vercel访问,奥维APP扫吗可用

奥维互动地图 墨卡托(Mercator)投影 最新资源_第2张图片
奥维互动地图 墨卡托(Mercator)投影 最新资源_第3张图片

是一种"等角正切圆柱投影"。假设地球被围在一个中空的圆柱里,其标准纬线与圆柱相切接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅选定标准纬线上的"墨卡托投影"绘制出的地图。

墨卡托投影没有角度变形,由每一点向各方向的长度比相等,它的经纬线都是平行直线,且相交成直角,经线间隔相等,纬线间隔从标准纬线向两极逐渐增大。墨卡托投影的地图上长度和面积变形明显,但标准纬线无变形,从标准纬线向两极变形逐渐增大,但因为它具有各个方向均等扩大的特性,保持了方向和相互位置关系的正确。在地图上保持方向和角度的正确是墨卡托投影的优点,因此常用作航海图和航空图,如果循着图上两点间的直线航行,方向不变可以一直到达目的地。“海底地形图编绘规范”(GB/T 17834-1999)中规定1:25万及更小比例尺的海图采用墨卡托投影,其中基本比例尺海底地形图(1:5万,1:25万,1:100万)采用统一基准纬线30°,非基本比例尺图以制图区域中纬为基准纬线。基准纬线取至整度或整分。

墨卡托投影坐标系取零子午线或自定义原点经线(L0)与赤道交点的投影为原点,零子午线或自定义原点经线的投影为纵坐标X轴,赤道的投影为横坐标Y轴,构成墨卡托平面直角坐标系。

相关概念:

Spacial Reference,空间参考
EPSG,European Petroleum Survey Group (EPSG),该组织负责维护并发布坐标参照系统的数据集参数,以及坐标转换描述
GCS,地理坐标系,椭球体定义,如WGS84坐标系,世界地理坐标系,EPSG 4326,GPS使用该坐标系,以及国内的54,80坐标系,使用经纬度坐标
PCS,投影坐标系,基于GCS椭球体定义的投影方式的定义
Mercator投影,由荷兰人Mercator定义的正轴等角切圆柱投影。Google Maps, Yahoo Maps, Microsoft Maps等网络电子地图服务使用基于该投影坐标系的Web Mercator坐标系, EPSG:900913 或 EPSG:3785,使用像素坐标(单位:像素)或者空间直角坐标(单位:米)
Groud Resolution,地面精度为地图上的像素表达的地面距离,单位为meters per pixcel
Map Scale,地图比例尺为地图距离与地面距离的比值
Tile,瓦片表示网络地图中的最小组成部分
TMS,Tile Map Service,瓦片地图服务,使用层行列坐标或者Quadkey
坐标转换

在使用公开的电子地图服务构建应用并叠加数据时,需要用到以下的坐标转换场景:

     LatLon      <->       Meters      <->     Pixels    <->       Tile

 WGS84 coordinates   Spherical Mercator  Pixels in pyramid  Tiles in pyramid

     lat/lon            XY in metres     XY pixels Z zoom      XYZ from TMS

    EPSG:           EPSG:

     .----.              ---------               --                TMS

    /      \     <->     |       |     <->     /----/    <->      Google

    \      /             |       |           /--------/          QuadTree

     -----               ---------         /------------/

   KML, public         WebMapService         Web Clients      TileMapService

EPSG:900913坐标范围

[-, -, , ]

let r =

// 常量20037508根据地球周长(单位米)计算

// 坐标原点位于范围中心

offset = * pi * r / 2.0
EPSG:900913金字塔缩放级别地面精度(pixels/meter)

// 整个区域在金字塔顶层 (zoom=0)为一张256x256 pixels的 瓦片,往下逐层细分

baseMetersPerPixel = offset * / =
LatLon 与 Meter X/Y互相转换

def YToLat(y)

{

return pi / 2.0 - 2.0 * atan(exp(-y/r))

}

def LatToY(lat)

{

sinLat = sin(lat);

return 0.5*log((1.0 + sinLat)/(1.0 - sinLat))*r;

// return -log(tan(pi / 4.0 - lat / 2.0)) * r;

}

def LonToX(lon)

{

return lon * offset / pi

}

def XToLon(x)

{

return x  * pi / offset

}
其中,LatToY有两种写法,转换原理为:

let t = tan(pi / 4.0 - lat / 2.0)

= tan((pi/2.0–lat) / 2.0)

// 由半角公式

= sin(pi/2.0–lat) / (+cos(pi/2.0–lat))

// 由sin(π/2-α)= cosα, cos(π/2-α)= sinα

= cos(lat)/(+sin(lat))

= sqrt((-sin(lat))/(+sin(lat)))

Log(t)

= log(sqrt((-sin(lat))/(+sin(lat))))

= -0.5*log((+sin(lat))/ (-sin(lat)))
Meter X/Y 与 Pixel x/y 互相转换

此处示范的是Bing Map中的转换方法,设定为:(origin [0,0] in top-left),如下图所示(Level 3)

球面墨卡托(Spherical Mercator)-LMLPHP

def MetersPerPixel2(zoom)

{

return baseMetersPerPixel / ( << zoom)

}

def PixelYToY(pixelY,zoom)

{

return offset - pixelY * MetersPerPixel2(zoom)

}

def YToPixelY(y,zoom)

{

return (offset - y) / MetersPerPixel2(zoom)

}

def PixelXToX(pixelX, zoom)
{
return pixelX * MetersPerPixel2(zoom) - offset
}

def XtoPixelX(x,zoom)
{
return (x + offset) / MetersPerPixel2(zoom)
}
Pixel x/y 与 Tile l/r/c或者quadkey互相转换

此处示范的是Bing Map中的瓦片编号方法,如下图所示(Level 3)

球面墨卡托(Spherical Mercator)-LMLPHP

def TileToPixel(tile)

{

east = (tile.X + ) *

north = tile.Y *

south = (tile.Y+) *

west = tile.X *

}

def PixelToTile(pixelX, pixelY)

{

tile.X = floor(pixelX / )

tile.Y = floor(pixelY / )

}

你可能感兴趣的:(人工智能,算法,arcgis)