• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

arcgis runtime 100。屏幕上画点

/* Copyright 2016 Esri
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  */
   
  package com.esri.arcgisruntime.samples.showcallout;
   
  import android.graphics.Color;
  import android.os.Bundle;
  import android.support.v7.app.AppCompatActivity;
  import android.util.Log;
  import android.view.MotionEvent;
  import android.widget.TextView;
   
  import com.esri.arcgisruntime.geometry.GeometryEngine;
  import com.esri.arcgisruntime.geometry.Point;
  import com.esri.arcgisruntime.geometry.SpatialReferences;
  import com.esri.arcgisruntime.mapping.ArcGISMap;
  import com.esri.arcgisruntime.mapping.Basemap;
  import com.esri.arcgisruntime.mapping.view.Callout;
  import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
  import com.esri.arcgisruntime.mapping.view.MapView;
   
  public class MainActivity extends AppCompatActivity {
   
      private static final String sTag = "Gesture";
      private MapView mMapView;
      private Callout mCallout;
   
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
   
          // inflate MapView from layout
          mMapView = (MapView) findViewById(R.id.mapView);
          // create a map with the Basemap Type topographic
          final ArcGISMap mMap = new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 10);
          // set the map to be displayed in this view
          mMapView.setMap(mMap);
   
          mMapView.setOnTouchListener(new DefaultMapViewOnTouchListener(this, mMapView) {
   
              @Override
              public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
                  Log.d(sTag, "onSingleTapConfirmed: " + motionEvent.toString());
   
                  // get the point that was clicked and convert it to a point in map coordinates
                  android.graphics.Point screenPoint = new android.graphics.Point(Math.round(motionEvent.getX()),
                          Math.round(motionEvent.getY()));
                  // create a map point from screen point
                  Point mapPoint = mMapView.screenToLocation(screenPoint);
                  // convert to WGS84 for lat/lon format
                  Point wgs84Point = (Point) GeometryEngine.project(mapPoint, SpatialReferences.getWgs84());
                  // create a textview for the callout
                  TextView calloutContent = new TextView(getApplicationContext());
                  calloutContent.setTextColor(Color.BLACK);
                  calloutContent.setSingleLine();
                  // format coordinates to 4 decimal places
                  calloutContent.setText("Lat: " +  String.format("%.4f", wgs84Point.getY()) +
                          ", Lon: " + String.format("%.4f", wgs84Point.getX()));
   
                  // get callout, set content and show
                  mCallout = mMapView.getCallout();
                  mCallout.setLocation(mapPoint);
                  mCallout.setContent(calloutContent);
                  mCallout.show();
   
                  // center on tapped point
                  mMapView.setViewpointCenterAsync(mapPoint);
   
                  return true;
              }
          });
      }
   
   
      @Override
      protected void onPause(){
          super.onPause();
          mMapView.pause();
      }
   
      @Override
      protected void onResume(){
          super.onResume();
          mMapView.resume();
      }
  }

posted on 2017-08-30 13:25  gisai  阅读(795)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3