zoukankan      html  css  js  c++  java
  • ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上[转]

    ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上

    我自己有个厂区的地图是cad的,转换为shape格式。然后将这个小地图正确的放置到google maps 上海市的大地图上的。

    网上资料1:
    如果要将自己的数据与ArcGIS online的数据叠加使用,那么:1、应该选择后者为Primary Map Resource(有一种情况下,可以将自己的服务作为Primary Map Resource,就是自己数据的坐标系与ArcGIS Online或Google Map的坐标系相同,但cache的比例尺级别只是它们其中一个子集。);2、对于自己数据的地图文档,在data frame中将坐标系选择成Predefined > Geographic Coordinate Systems > World > WGS 1984,ArcMap会将你的数据动态投影到该坐标系下;3、做cache的时候选择load an existing tiling scheme from ArcGIS Online Services,这样能保证比例尺级别与其相同,ArcGIS Online默认有十几级cache,对于自己的数据,可以创建其中的几级,但可能出现的情况请参照前面的分析。对于要和Google Map叠加的数据,步骤也是上面的1、2、3,注意在2中要选择:Predefined > Projected Coordinate Systems > World > WGS 1984 Web Mercator。
             如果在步骤3中,点击load an existing tiling scheme时出错,那很有可能是你跳过了步骤2。
    网上资料2:
    使用空间参考

    地图上的要素指的的是实际世界中的物体的位置。这些物体的在球面上的位置是用经纬度来衡量的,这就是我们所知道的geographic coordinates。虽然经纬度可以准确的表示物体在球面上的位置,但是它们不是测量的单位;为了解决测量问题,数据经常通过projected coordinate system.,从3D的地理坐标地图转换为2D的平面。投影坐标系统描述到一个原点是(0,0)---(X轴代表东西和y轴代表北南的坐标系)的距离

    因为地球是圆的地图是平的,从弯曲的球面获得平面的信心需要一个转换叫做map projection(地图投影)。一个地图投影将经纬度坐标转换为一个projected coordinate system的x,y坐标。

    术语坐标系统(coordinate system),它包含地理和投影坐标系统。它被用来描述投影、数据、单位和子午线信息。

    每一个坐标系统通过众所周知的ID(WKID)和一个字符串(WKT)来定义。
    设计自己的地图叠加到

    Google Maps或者 MicroSoft Vitual Earth

    Release 9.3 ArcGIS JavaScript™ Extension for the Google Maps™ API

    Release 9.3 ArcGIS JavaScript™ Extension for Microsoft Virtual Earth™
      
    ArcGIS Server 9.3包含Google Maps和Mircosoft Virtual Earth API的JavaScript扩展包。如果你想要使用这些扩展包来添加你的地图叠加到Google Maps或者MicroSoft Virtual Earth上的话,按照下面的流程创建你自己的地图:

    Author the map

    你将在ArcMap中创建地图并添加数据且给以合适的标注。当你设计地图的时候,你将需要使用和Google Maps和microsoft virtual earth相同的坐标系统和比例尺。


    Change the coordinate system to WGS 1984 Web Mercator


    设计地图要做的第一件事情就是将数据框架的坐标系统改成和Google Maps 和microsoft virtual earth一样,即WGS 1984 Web Mercator。为了实现改变坐标系统,按照下面的步骤:

        1、在ArcMap TOC(table of contents)上,右键点击data frame 名称(默认是Layers),并选择properties(属性)

       2、点击Coordinate System 标签

       3、点击 predefined->Projected Coordinate Systems->World->WSGS 1984 Web Mercator,然后点击“OK”

    注意:如果你数据的地理坐标系统(geographic coordinate system)不是使用WGS1984 datum或者 GRS80 椭圆体(ellipsoid),你将需要将你的数据进行转换来正确的适应Google Maps和Virtual Earth。NAD83就是一个使用GRS80椭圆体的地理坐标系统例子。不适用WGS 1984 datum或者FRS80 椭圆体的地理坐标系统还包括NAD27,ED50,等等,更多请看ESRI Knowledge Base Article 34749 (介绍如果进行这些转换)


    Design at the Google Maps and Microsoft Virtual Earth scales

    你地图的用户将会看到Google Maps和microsoft virtual earth使用的比例尺,所以你在设计你的比例尺的时候只能使用这些比例尺。但是你怎么知道这些比例尺都是多少呢?

    你可以加载Google maps和microsoft virtual earth 的比例尺到你的 Arcmap 比例尺下拉列表(dropdown list),按照下列步骤:

        1、将txt文件gmaps_ve_scales.txt 拷到一个你容易记住的地方。(这个文件放在C:\Inetpub\wwwroot\ArcGIS\Manager\Help\gmaps_ve_scales.txt)

       2、打开 ArcMap 并且添加一些数据

       3、点击比例尺下拉列表(dropdown list of scales)并且点击自定义这个列表

       4、点击Load

       5、打开gmaps_ve_scales.txt文件

       6、点击OK使你的更改生效。你将看到所有的google maps/virtual earth的比例尺很轻松的显示了。

    你仅仅需要将你的地图在对应比例尺下的外观做好就可以了,因为在每个比例尺下要做地图缓存。如果你不打算对大比例尺做缓存的话,你不必在这些比例尺做任何设计工作。

    在你的图层上设置比例尺范围(scale ranges)可以做到在不同的比例尺上可以见到不同的内容。当你设置你的比例尺范围(scale ranges)的时候,避免在你编辑的比例尺上或者附近切换图层关闭或者打开。

    你也许需要复制你的图层,这样你可以给它们在不同的比例尺以不同的符号。Arcmap 的toc可以包含一个图层的多个拷贝。每一个可以有自己的符号和比例尺范围。复制图层的步骤是:在arcmap toc 中邮件点击它并点击Copy。然后右键点击data frame 名称,再点击 Paste Layer(s)。

    Publish the map as a service
    在你完成创建你的地图文档(.xmd)之后,你需要将它发布成一个Arcgis Server map service,这样你才能在你的JavaScript应用中使用它。最早的一种方式是在arccatalog上右键点击地图文档,再点击 publish to arcgis server

    Learn more about publishing a GIS resource to the server.

    Create a map cache

    Google maps和vritual eart访问速度很快的一个原因就是他们使用了服务器端的地图缓存,这就意味着事先生成的图片被存储在服务器端,这样你就可以很快的通过一个URL很快的访问了。使用arcgis server,你可以为你的地图创建一个类似的缓存。创建地图缓存是优化地图表现的所推荐的(也是在使用Arcgis JavaScript extension for virtual earth必需的)。

    地图缓存(Map caches )部分包含了很多关于计划、创建、和更新地图缓存的细节。创建缓存的方式有很多种,下面是关键的步骤:

        1、在arccatalog中右键点击服务(service),然后点击Service properties

        2、点击Caching标签,选择“Using tiles from a cache that you will define below”来画地图

        3、点击“Load tiling scheme from”,然后在下拉列表选择Microsoft Virtual Earth / Google Maps

        4、如果有必要,更改缓存目录

        5、点击create tiles,缓存工具将显示许多数据已经被填在上面。

        6、不要勾选你不需要做缓存的比例尺。如果你的地图覆盖一个很大的区域,你在大比例尺下(zoom in)将看不到它,所以你不要勾选这些大比例尺

        7、设置更新模式为Recreate All tiles 然后点击OK。工具将会创建这些tiles

    依赖于你的地图有多大和你选择了哪些比例尺,创建所有的tiles将是一个很长的时间。见Planning a map cache 了解更多关于影响创建缓存时间的因素。

    Once you've finished creating the cache, you're ready to use your map with Google Maps or Microsoft Virtual Earth. See Developing with ArcGIS Server: An Overview to learn how you can develop JavaScript applications that overlay your maps with Google Maps and Microsoft Virtual Earth.
  • 相关阅读:
    AJAX 后台返回多种数据
    oracle 学习摘录
    JAVA中使用FTPClient上传下载
    struts 2 学习
    js 回车事件
    @Resource和@Autowired作用和区别
    spring 常用注解
    正则表达式
    javascript 学习教程
    cxf 发布 一个简单的 webservice
  • 原文地址:https://www.cnblogs.com/frogbag/p/1574989.html
Copyright © 2011-2022 走看看