Android 地图的地理编码与地理反编码
来源:互联网 发布:飞凡网络 编辑:程序博客网 时间:2024/04/30 03:37
在实际的移动开发过程中,地图相关的操作对于地理编码与地理反编码的使用都是十分普遍。幸运的是,Android的MapView控件中对于这两者都进行了封装,因此可以方便的利用Google Map Service进行二者查询。下面将对开发过程做一个简单介绍。
Java代码:
复制代码
接着可以在主Layout文件中加入对于地图的显示,这里需要加入刚才申请的MapKey,否则地图将无法正常显示。
Java代码:
复制代码
接着在主Activity的JAVA文件进行修改,支持地图显示。
Java代码:
复制代码
此时运行程序,地图应该就可以正常显示了
效果图:
此时我们再向程序中加入地理编码与地理反编码的功能
Java代码:复制代码
地理反编码,其中MapOverlay为地图图层上的叠加图层,用于标识的显示以及点击事件的捕捉。
Java代码:复制代码
效果图:
Java代码:
- < ?xml version="1.0" encoding="utf-8"?>
- < manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="net.learn2develop.GoogleMaps"
- android:versionCode="1"
- android:versionName="1.0.0">
- < application
- android:icon="@drawable/icon"
- android:label="@string/app_name">
- < uses-library
- android:name="com.google.android.maps" />
- < activity
- android:name=".MapsActivity"
- android:label="@string/app_name">
- < intent-filter>
- < action
- android:name="android.intent.action.MAIN" />
- < category
- android:name="android.intent.category.LAUNCHER" />
- < /intent-filter>
- < /activity>
- < /application>
- < uses-permission android:name="android.permission.INTERNET" />
- < /manifest>
接着可以在主Layout文件中加入对于地图的显示,这里需要加入刚才申请的MapKey,否则地图将无法正常显示。
Java代码:
- < ?xml version="1.0" encoding="utf-8"?>
- < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- < com.google.android.maps.MapView
- android:id="@+id/mapView"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:enabled="true"
- android:clickable="true"
- android:apiKey="MapKey"
- />
- < /RelativeLayout>
接着在主Activity的JAVA文件进行修改,支持地图显示。
Java代码:
- import com.google.android.maps.MapActivity;
- import com.google.android.maps.MapView;
- import android.os.Bundle;
- public class MapsActivity extends MapActivity
- {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- MapView mapView = (MapView) findViewById(R.id.mapView);
- mapView.setBuiltInZoomControls(true);
- }
- }
此时运行程序,地图应该就可以正常显示了
效果图:
此时我们再向程序中加入地理编码与地理反编码的功能
Java代码:
- Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
- try {
- List
- addresses = geoCoder.getFromLocationName("上海市杨浦区四平路1239号", 5);
- String add = "";
- if (addresses.size() > 0) {
- p = new GeoPoint(
- (int) (addresses.get(0).getLatitude() * 1E6),
- (int) (addresses.get(0).getLongitude() * 1E6));
- mc.animateTo(p);
- mapView.invalidate();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
地理反编码,其中MapOverlay为地图图层上的叠加图层,用于标识的显示以及点击事件的捕捉。
Java代码:
- view plaincopy to clipboardprint?
- class MapOverlay extends com.google.android.maps.Overlay
- {
- @Override
- public boolean draw(Canvas canvas, MapView mapView,boolean shadow, long when)
- {
- //...
- }
- @Override
- public boolean onTouchEvent(MotionEvent event, MapView mapView)
- {
- //---when user lifts his finger---
- if (event.getAction() == 1) {
- GeoPoint p = mapView.getProjection().fromPixels(
- (int) event.getX(),
- (int) event.getY());
- Geocoder geoCoder = new Geocoder(
- getBaseContext(), Locale.getDefault());
- try {
- List
- addresses = geoCoder.getFromLocation(
- p.getLatitudeE6() / 1E6,
- p.getLongitudeE6() / 1E6, 1);
- String add = "";
- if (addresses.size() > 0)
- {
- for (int i=0; ii++)
- add += addresses.get(0).getAddressLine(i) + ";
- }
- Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- return true;
- }
- else
- return false;
- }
- }
效果图:
- Android 地图的地理编码与地理反编码
- Android地图开发中的地理编码与地理反编码
- Android地图开发中的地理编码与地理反编码
- Android地图开发中的地理编码与地理反编码
- google地图地理编码与反编码
- 百度地图----地理编码与反地理编码
- iOS 原生地图地理编码与反地理编码
- android 百度地图api 地理编码&反地理编码
- 地图,CoreLocation地理编码,反地理编码
- 地理编码与地理反编码
- 地理编码与反地理编码
- 地理编码与反地理编码
- 关于地理编码与反地理编码
- 地理编码与反地理编码
- Android 百度地图api地理编码与逆地理编码
- 地理编码与反编码
- 地理编码与反编码
- 地理编码/反地理编码
- 编译Android时出现make: execvp: /bin/bash: Argument list too long错误
- 【selenium】selenium安装及验证
- ajax+thinkphp框架实现无刷新分页
- sql导出数据库中的数据
- 几种比较好的哈希方法
- Android 地图的地理编码与地理反编码
- 关于碧螺春的江湖之三 【苏州 碧螺春 营养成分 健康价值】
- IOS资源PNG解决黑色无法查看的问题
- 【P2P网络】BitTorrent的DHT协议(译自官方版本)
- android 手机信息获取
- 《Windows程序设计》读书笔记
- adnroid 地图服务 详解
- Linux查看进程的内存占用情况(Linux性能调优)
- c# 动态调用webservice