/* 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(); |
|
} |
|
} |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2014-08-30 北极星