Google MAP模板
//在不支持多点触屏的设备上实现地图的放大缩小 //开启内置缩放控制,在地图下方显示2个缩放按钮 Private MapView mapView=... mapView.setBulitInZoomControls(true); //设置地图等级 mapView.setZoom(12); //通过编程方式控制 获得MapController对象 MapController mc=mapView.getController(); 放大缩小分别利用MapController的zoomIn()和zoomOut()方法 改变地图视图 mapView.setSatellite(true);//卫星模式 mapView.setTraffic(true);//交通流量模式 mapView.setStreetView(true);//街景模式 修改地图属性 mapView.setClickable(true); mapView.setEnabled(true); 显示一个特定的位置 String coordinates[] = {"39.90960456049752", "116.3972282409668"}; double lat = Double.parseDouble(coordinates[0]); double lng = Double.parseDouble(coordinates[1]); p = new GeoPoint() { (int)(lat * 1E6); (int)(lng * 1E6); }; mc.animateTo(p); mapView.invalidate(); 增加标记: public class MainActivity extends MapActivity { private MapView mapView; private MapConrtoller mc; private GEOPoint p; class MapOverlay extends Overlay { public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { super.draw(canvas, mapView, shadow); Point screenPts = new Point(); mapView.getProjection().toPixels(p, screenPts); Bitmap bmp = BitmapFactory.decodeResource(getResource, R.drawable.pinicon); canvas.drawBitmap(bmp, screenPts.x - 32, screenPts.y - 59, null); return true; } } public void onCreate(Bundle savedInstanceState) { ... MapOverlay mapOverlay = new MapOverlay(); list<Overlay> listOfOverlays = mapView.getOverlays(); listOfOverlays.clear(); listOfOverlays.add(mapOverlay); mapView.invalidate();//note } protected boolean isRouteDisplayed() { return false; } } //获取触摸位置 //覆写overlay类的onTouchEvent()方法 public boolean onTouchEvent(MotionEvent event, MapView mapView) { if(event.getAction() == 1) { GeoPoint p = mapView.getProjection().fromPixels((int)event.getX(), (int)event.getY()); } return false; } //给定经纬度,返回地址 public String getAddresses() { String addressString="没有找到地址"; Geocoder gc=new Geocoder(mMobileMap,Locale.getDefault()); try { List<Address> addresses=gc.getFromLocation(mLocation.getLatitude(),mLocation.getLongitude(),1); StringBuilder sb=new StringBuilder(); if(addresses.size()>0) { Address address=addresses.get(0); sb.append("地址: "); for(int i=0;i<address.getMaxAddressLineIndex();i++) { sb.append(address.getAddressLine(i)); } addressString=sb.toString(); } } catch(IOException e) { } return addressString; } //给定名字,返回经纬度 public void searchName(String name) { try { List<Address> addresses = mGeoCoder.getFromLocationName(name, 1); if(addresses.size() > 0) { Address address = addresses.get(0); mLocation.setLatitude(address.getLatitude()); mLocation.setLongitude(address.getLongitude()); } } catch(IOException e) { } }
分类:
android
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 《HelloGitHub》第 108 期
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单