首页 > 代码库 > 关于ArcGIS API 中 LODs 关键词功能的个人理解

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

关于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>


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






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