`
nlslzf
  • 浏览: 1045291 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GOOGLE MAP使用的投影为EPSG:900913

阅读更多
http://www.cnblogs.com/kaixin110/archive/2008/05/30/1210772.html
Google Map用什么投影坐标系统呢?以前一直以为是WGS84,但是大家都知道Google Map的地图在两极部分的畸变非常大,所以显然它不是WGS84这一类的球面坐标系统。由于一次工作,需要将google map和我自己设计的WebGIS进行叠合,我的WebGIS用的是WGS84,EPSG:4326,叠合后总是有mismatch的地方,后来索性研究 了一下openlayers的文档,得知Google Map使用的是编号为EPSG:900913的投影。从这个编号看,就知道它不是EPSG本身定义的投影,所以,我即便在map的属性设置里加上projection =”ESPG:900913″,并在google map的 layer里设置’sphericalMercator’: true后,仍然不行。
其实,最终的问题是我的坐标系统不是基于900913的。有两种解决办法。一,将自己的数据转化为900913,可以用ogr或者arcToolbox里 相应的命令行,不再多说了。或者就是通过MapServer on-the-fly去reprojections。但是MapServer,ogr,以及arcGIS进行投影转换需要有预定好的投影,而在proj4 和arcGIS里并没有预定900913。定义方法如下:
1. 在/proj/nad/epsg里添加“# Google Mercator
<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs <>”
这样你就可以使用ogr,Mapserver实时的进行转换了。
2. 如果你需要用arcGIS来转换,需要在文件ArcGIS\Coordinate Systems\Projected Coordinate Systems\world里添加文件 Google Mercator (world).prj. 我自己写的内容为:
PROJCS[”Google_Mercator”,GEOGCS[”GCS_WGS_1984″,
DATUM[”D_WGS_1984″,SPHEROID[”WGS_1984″,6378137,0]],
PRIMEM[”Greenwich”,0],UNIT[”Degree”,0.017453292519943295]],
PROJECTION[”Mercator”],PARAMETER[”False_Easting”,0],PARAMETER[”False_Northing”,0],
PARAMETER[”Central_Meridian”,0],PARAMETER[”Standard_Parallel_1″,0],UNIT[”Meter”,1]]

PS. EPSG: 900913 为横轴墨卡托投影。它和EPSG:3395非常类似,只是没有扁率298. 257223563。也就是说他不是一个椭球。还有一点需要注意,Google 投影用的是Mercator——2SP该投影在acrGIS以及proj4里均没有定义。所以要做一些转换。
如果您对地图投影,墨卡托投影,特别是WebGIS里面的使用情况有疑惑,请参考如下的文献:
http://www.spatialreference.org/ref/user/google-projection/
http://jira.codehaus.org/browse/GEOT-1511
http://spatialreference.org/ref/user/6/
http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources
http://www.sharpgis.net/2007/05/05/SpatialReferencesCoordinate
SystemsProjectionsDatumsEllipsoidsConfusing.aspx

code:
在html中:

var lon = 4174203.107;
var lat = 3556972.005;
var zoom = 5;
var options = { maxExtent: new OpenLayers.Bounds(7765266.742441,429318.305045,16113672.956358,7543262.315404),
maxResolution: 16543,
projection: "EPSG:900913",
units: "km",
numZoomLevels: 7};
map = new OpenLayers.Map('map', options);
layer = new OpenLayers.Layer.MapServer( "CHGIS MapServer", "/cgi-bin/mapserv.exe?map=/ms4w/apache/htdocs/buddhist/google.map&layers=PII_google",
{layers: 'basic'},
{opacity:0.5, isBaseLayer:false});
map.addLayer(layer);
satellite = new OpenLayers.Layer.Google( "Google Satellite" , {type: G_SATELLITE_MAP,
'maxZoomLevel':18, 'sphericalMercator': true} );
map.addLayers([satellite]);

在map文件中:

MAP
IMAGETYPE PNG
# EXTENT 72.9958 17.9958 136.0042 54.0042
EXTENT 7765266.742441 429318.305045 16113672.956358 7543262.315404
SIZE 1200 800
SHAPEPATH "data"
IMAGECOLOR 234 255 255
TRANSPARENT ON
FONTSET "fonts/fonts.list"
SYMBOLSET "symbols/symbols.sym"
PROJECTION
# "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"
"init=epsg:900913"
END
#定义图层LAYERS
END
分享到:
评论

相关推荐

    Proj4js实现客户端坐标转换

    EPSG:900913 是一个特殊的投影坐标系,用于 Google Map 和 VirtualEarth 等 Web GIS 系统。这个投影坐标系的参数如下: ``` +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +...

    openlayer加载

    - **球形墨卡托投影**:许多在线地图服务(如Google Maps)使用球形墨卡托投影(EPSG:900913),这是因为这种投影方式适合全球范围的地图显示。然而,在局部区域放大时,可能会出现一定的失真。 - **多源数据融合**...

    Openlayer 简单实例10

    然而,`projection`在这里被设置为“EPSG:900913”,也称为Spherical Mercator,是Google Maps、OpenStreetMap等广泛采用的投影方式,它适合显示大比例尺的在线地图。 2. `displayProjection`:这个属性定义了用户...

    openlayer框架说明文档

    - **GCJ-02**: 国测局2002年发布的坐标系,是中国特有的坐标偏移标准,常用于Google Map、高德地图和腾讯地图。 - **BD-09**: 百度自有的坐标系,主要用于百度地图。 2. **投影** - **投影**: 地球并非完美的...

    金字塔图片服务器部署全步骤.docx

    在GlobalMapper中打开tif图片,选择合适的投影坐标,通常是EPSG:900913(也称EPSG:3857或EPSG:3785,这是谷歌地图使用的坐标系统)。然后通过`File-&gt;Export Raster/Image Format`导出GeoTiff格式,确保图片包含投影...

    Openlayer 简单实例11

    - **目的**:为用户提供测量地图上任意两点间距离或任意多边形面积的功能。 - **方法**: - 使用`OpenLayers.Control.Measure`控制件。 - 设置控制件的参数,例如`handlerOptions`来指定测量类型(距离或面积)。 ...

    geojson格式世界地图GS84和Web墨卡托两种投影

    Web墨卡托是一种广泛应用于网络地图服务,如Google Maps和OpenStreetMap的投影方法。它通过将球面坐标转换为二维平面坐标,使得地图可以被无缝拼接成一个大的矩形。这种投影方法在小比例尺下表现良好,适合互联网上...

    世界地图geojson格式WGS84和Web墨卡托两种投影

    Web墨卡托,又称Spherical Mercator,是网络地图服务如Google Maps、OpenStreetMap广泛采用的投影方式。它的特点是将整个地球投影到一个无限长且无限宽的矩形平面上,使得在有限的屏幕空间内可以显示整个世界,同时...

    openlayers-map

    2. **投影(Projections)**:OpenLayers支持多种地理坐标系统,如EPSG:4326(经纬度)和EPSG:900913(Google Maps坐标系)。可以使用 Proj4js 库进行坐标系之间的转换。 3. **控件(Controls)**:OpenLayers提供...

    基于Google_Map_的空间数据整合技术.pdf

    Google Maps采用的是一种特殊类型的墨卡托投影,即EPSG:900913标准下的等角圆柱投影。这种投影方式的特点在于保持了方向的准确性,非常适合用于展示全球范围内的地图。但是,墨卡托投影的一个显著缺点是随着纬度的...

    Openlayers测距测面积

    在OpenLayers中,由于默认的投影系统(通常为EPSG:900913,即Spherical Mercator)与实际地球坐标(如WGS84)可能存在差异,因此在进行距离和面积计算时,可能需要进行投影变换。下面的代码展示了如何进行投影转换:...

    openlayers3添加各种地图资源

    其核心特性包括矢量图层处理、瓦片图层管理、投影支持、交互式编辑、地理编码等功能,为开发复杂的WebGIS应用提供了坚实的基础。 二、加载百度地图 加载百度地图需要使用Baidu Maps API的坐标转换和图层配置。首先...

    空间坐标系与EPSG编号的对应关系.zip

    其他如3857(Web Mercator)常用于在线地图服务,如谷歌地图和OpenStreetMap。每个编号背后都有一套数学模型,描述了地球的形状、投影方式、单位以及坐标原点等参数。 理解空间坐标系与EPSG编号的关系,首先需要...

    openlayers加载瓦片地图并手动标记坐标点

    3. 加载瓦片地图服务:使用`ol.source.OSM`(OpenStreetMap)或其他地图服务提供商(如Google Maps或Bing Maps)加载瓦片。这里以OpenStreetMap为例: ```javascript var tileLayer = new ol.layer.Tile({ source...

    openlayers离线文档

    OpenLayers支持多种投影,包括常见的EPSG:4326(纬度/经度)和EPSG:900913(Google Maps使用的Spherical Mercator)。在处理地图时,正确设置投影是确保地图正确显示的关键。 "瓦片"(Tiles)是OpenLayers处理大型...

    openlayers加载本地切片、高亮显示

    例如,常见的Web墨卡托投影是EPSG:3857。确保在创建地图时设置正确的投影。 ```javascript var projection = new ol.proj.Projection({ code: 'EPSG:3857', units: 'm' }); ``` 2. **创建图层**:定义一个图层来...

    arcgis api for js 加载webMercator天地图.rar

    由于其线性比例尺在赤道附近保持一致,因此适合显示全球范围的地图,特别是Google Maps、Bing Maps和天地图等在线地图服务均采用此投影。 三、加载天地图到ArcGIS API 1. 引入API和天地图服务 首先,在HTML文件中...

    openlayer文档和源码

    2. **投影**:OpenLayers 支持多种地图投影,包括常见的EPSG:4326(WGS84,用于GPS坐标)和EPSG:3857(Spherical Mercator,用于Google Maps和OpenStreetMap)。开发者需要理解不同投影之间的转换,以确保地图正确...

    OpenLayers参考

    4. **投影转换**:OpenLayers 支持多种地图投影,包括常见的EPSG:4326和EPSG:3857。了解如何在不同投影间进行转换,以便适应全球范围内的地图显示需求。 5. **交互操作**:探索OpenLayers 提供的各种交互控件,如...

    openLayers-API中文

    OpenLayers支持多种投影,如EPSG:4326(WGS84,常用于GPS坐标)和EPSG:3857(Spherical Mercator,Google Maps使用)。 4. **控件(Control)**:控件是地图上的交互元素,如缩放滑块、导航工具、定位按钮等。`...

Global site tag (gtag.js) - Google Analytics