关于ArcGIS API 中 LODs 关键词功能的个人理解

本文通过Flex MXML程序代码演示,详细解释了LODs在ArcGIS二次开发中的作用,包括如何自定义缩放级别、设置分辨率和比例尺,以及不设置LODs时的效果对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


查看原文:http://www.ibloger.net/article/344.html


关于LODs的理解

由于个人是对ArcGIS做二次开发的,对于ArcGIS的专业地理知识不是很了解,在二次开发中遇到的一些英文专属名词很难理解其中代表的含义,比如LODs关键字是翻译瓷砖好还是瓦片好?在我理解看来已经不重要了,这篇文章中我用ArcGIS API For Flex的开发代码作为演示,查看到底LODs到底是个什么东西?

 

如下flex中.mxml程序代码

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

               xmlns:s="library://ns.adobe.com/flex/spark"

               xmlns:esri="http://www.esri.com/2008/ags"

               backgroundColor="0xEEEEEE"

               pageTitle="Specifying specific tile levels(指定tile的级别)">

   

    <esri:Map>

        <esri:lods>

            <esri:LOD resolution="0.0439453125" scale="18468599.9106772"/>

            <esri:LOD resolution="0.02197265625" scale="9234299.95533859"/>

            <esri:LOD resolution="0.010986328125" scale="4617149.97766929"/>

            <esri:LOD resolution="0.0054931640625" scale="2308574.98883465"/>

            <esri:LOD resolution="0.00274658203125" scale="1154287.49441732"/>

        </esri:lods>

        <esri:extent>

            <esri:Extent xmin="-124.629" ymin="18.826" xmax="-68.027" ymax="56.311">

                <esri:SpatialReference wkid="4269"/>

            </esri:Extent>

        </esri:extent>

        <esri:ArcGISDynamicMapServiceLayer url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"/>

    </esri:Map>

</s:Application>

上面的代码也可参考官方API示例查看效果:https://developers.arcgis.com/flex/sample-code/only-use-some-scales-lods.htm


代码演示效果如上图,

这个时候我们观察到左上角的缩放滑块条上的级别正好是5个级别,和我们在flex程序中的<esri:LOD  …/> 个数是一样的,也就是说我们可以自定义滑块的缩放级别,参数中resolution属性可以设置当前级别的分辨率和scale属性设置比例尺

 

如果我们不设置<esri:LOD  … />效果会是什么样呢?

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

               xmlns:s="library://ns.adobe.com/flex/spark"

               xmlns:esri="http://www.esri.com/2008/ags"

               backgroundColor="0xEEEEEE"

               pageTitle="Specifying specific tile levels(指定tile的级别)">

   

    <esri:Map>

        <esri:extent>

            <esri:Extent xmin="-124.629" ymin="18.826" xmax="-68.027" ymax="56.311">

                <esri:SpatialReference wkid="4269"/>

            </esri:Extent>

        </esri:extent>

        <esri:ArcGISDynamicMapServiceLayer url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"/>

    </esri:Map>

</s:Application>


我们观察到缩放中没有级别,我们可以点击“+”,“ –”无限大和最小


我们打开<esri:ArcGISDynamicMapServiceLayer/>标签上的url地址发现,原来返回的内容中不包含有关地图Level的信息。http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer


所以我理解为不使用包含level的内容需要设置LOD的内容,还有一个发现是,一旦我们与如下代码中同时使用

<esri:ArcGISTiledMapServiceLayer/>我们可以设置LOD也可以不用设置LOD内容,如果不设置将会默认使用ArcGISTiledMapServiceLayer的级别,因为它是包含Level的信息的

 

    <esri:Map extent="{initialExtent}">

        <esri:lods>

            <esri:LOD level="0" resolution="156543.033928" scale="591657527.591555"/>

            <esri:LOD level="1" resolution="78271.5169639999" scale="295828763.795777"/>

            <esri:LOD level="2" resolution="39135.7584820001" scale="147914381.897889"/>

            <esri:LOD level="3" resolution="19567.8792409999" scale="73957190.948944"/>

            <esri:LOD level="4" resolution="9783.93962049996" scale="36978595.474472"/>

            <esri:LOD level="5" resolution="4891.96981024998" scale="18489297.737236"/>

            <esri:LOD level="6" resolution="2445.98490512499" scale="9244648.868618"/>

            <esri:LOD level="7" resolution="1222.99245256249" scale="4622324.434309"/>

            <esri:LOD level="8" resolution="611.49622628138" scale="2311162.217155"/>

        </esri:lods>

        <esri:ArcGISDynamicMapServiceLayer url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer" alpha="0.5"/>

        <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer"/>

    </esri:Map>


有不对的地方还望指出  谢谢!






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值