ArcGIS for Android示例解析之添加地图服务-----AddLayer

 

AddLayer

根据标题我们就可以知道这个例子是要干什么,对,就是添加地图服务,首先我们还是看布局文件main.xml:                  

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <!-- MapView layout and initial extent -->

    <com.esri.android.map.MapView

           android:id="@+id/map"

           android:layout_width="fill_parent"

           android:layout_height="fill_parent"

           initExtent = "-19332033.11, -3516.27, -1720941.80, 11737211.28">

      </com.esri.android.map.MapView>

     

</LinearLayout>

在上面xml文件中主要的是添加一个MapView标签并且添加了相应的熟悉,初始化了地图显示的范围。

在来看看AddLayer.java文件中的代码

private MapView map = null;

      //一个动态地图服务的URL字符串

      String dynamicMapURL =

                 "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer";

 

      @SuppressWarnings("serial")

      public void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.main);

          

           // Retrieve the map and initial extent from XML layout

           map = (MapView)findViewById(R.id.map);//获取map实例

           map.addLayer(new ArcGISDynamicMapServiceLayer(

                      "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"));//添加地图服务到map中

          

           //Creates a dynamic layer using service URL

           ArcGISDynamicMapServiceLayer dynamicLayer = new ArcGISDynamicMapServiceLayer(dynamicMapURL);//地图服务

           //Adds layer into the 'MapView'

           map.addLayer(dynamicLayer); //添加地图服务到map中

          

           Toast.makeText(this, "Long Press to add or remove layer",

                      Toast.LENGTH_SHORT).show();      

          

           //给 'MapView'设置一个长按地图事件监听

           map.setOnLongPressListener(new OnLongPressListener() {

                

                 @Override

                 public void onLongPress(float arg0,float arg1) {

                      //Determines if the map is loaded

                      if (map.isLoaded()) {

 

                            // Retrieves the maps layers

                            Layer[] layers = map.getLayers();

                            // Toggles the dynamic layer's visibility

                            if(layers[1].isVisible()){

                                  layers[1].setVisible(false);//隐藏服务

                            }else{

                                  layers[1].setVisible(true);//显示服务

                            }

                      }

                 }

           });

      }

在上面的代码中我们可以看出,我们在“MapView”中添加了两个地图服务,并且给map实例添加了一个长按事件监听,在事件处理函数中来实现地图服务的切换显示,MapView中还有很多其他的事件以后将一一呈现,通过上面的例子是不是感觉添加服务是件很简单的事情,没错,就是这么简单。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值