- 浏览: 40699 次
- 性别:
- 来自: 日照
最新评论
-
wuhanchendalong:
哥们你能把这个源代码的布局文件发给我好吗?我看看 非常感谢 ...
Android 自定义BaseAdapter -
greatghoul:
antkingwei 写道greatghoul 写道有木有跨平 ...
Java 在CS客户端做网页连接 -
antkingwei:
greatghoul 写道有木有跨平台的实现方法?什么意思?
Java 在CS客户端做网页连接 -
greatghoul:
有木有跨平台的实现方法?
Java 在CS客户端做网页连接
新建一个图层
package com.android.antkingwei.google.direction; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Point; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.Projection; public class DirectionPathOverlay extends Overlay { private GeoPoint gp1; private GeoPoint gp2; public DirectionPathOverlay(GeoPoint gp1, GeoPoint gp2) { this.gp1 = gp1; this.gp2 = gp2; } @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { Projection projection = mapView.getProjection(); if(shadow == false) { Paint paint = new Paint(); paint.setAntiAlias(true); Point point = new Point(); projection.toPixels(gp1, point); paint.setColor(Color.BLUE); Point point2 = new Point(); projection.toPixels(gp2, point2); paint.setStrokeWidth(2); canvas.drawLine((float) point.x, (float) point.y, (float) point2.x, (float) point2.y, paint); } return super.draw(canvas, mapView, shadow, when); } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); } }
主类
package com.android.antkingwei.google.direction; import java.net.HttpURLConnection; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MainActivity extends MapActivity { private MapView myMapView; private GeoPoint geoPoint; private MapController myMC; private String[] pairs; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myMapView = (MapView) findViewById(R.id.mapview); geoPoint = null; myMapView.setSatellite(false); //通过地名 //pairs = getDirectionData("ahmedabad", "vadodara"); //通过四个坐标 pairs = getUrl(22.5348,113.97246,35.422006,119.524095); String[] lngLat = pairs[0].split(","); // STARTING POINT GeoPoint startGP = new GeoPoint((int)(Double.parseDouble(lngLat[1]) * 1E6), (int) (Double.parseDouble(lngLat[0]) * 1E6)); myMC = myMapView.getController(); geoPoint = startGP; myMC.setCenter(geoPoint); myMC.setZoom(8); myMapView.getOverlays().add(new DirectionPathOverlay(startGP, startGP)); // NAVIGATE THE PATH GeoPoint gp1; GeoPoint gp2 = startGP; for (int i = 1; i < pairs.length; i++) { lngLat = pairs[i].split(","); gp1 = gp2; // watch out! For GeoPoint, first:latitude, second:longitude gp2 = new GeoPoint((int) (Double.parseDouble(lngLat[1]) * 1E6),(int) (Double.parseDouble(lngLat[0]) * 1E6)); myMapView.getOverlays().add(new DirectionPathOverlay(gp1, gp2)); Log.d("xxx", "pair:" + pairs[i]); } // END POINT myMapView.getOverlays().add(new DirectionPathOverlay(gp2, gp2)); myMapView.getController().animateTo(startGP); myMapView.setBuiltInZoomControls(true); myMapView.displayZoomControls(true); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } /** * 通过四个坐标点,获得KML然后通过DOM解析 * @param fromLat * @param fromLon * @param toLat * @param toLon * @return */ public String[] getUrl(double fromLat,double fromLon,double toLat,double toLon){ String urlString = "http://maps.google.com/maps?f=d&hl=en&saddr="+fromLat+","+fromLon+"&daddr="+toLat+","+toLon+"&ie=UTF8&0&om=0&output=kml"; Log.d("URL", urlString); Document doc = null; HttpURLConnection urlConnection = null; URL url = null; String pathConent = ""; try{ url = new URL(urlString.toString()); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); urlConnection.setDoInput(true); urlConnection.connect(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse(urlConnection.getInputStream()); } catch (Exception e){} NodeList nl = doc.getElementsByTagName("LineString"); for(int s=0; s< nl.getLength(); s++){ Node rootNode = nl.item(s); NodeList configItems = rootNode.getChildNodes(); for(int x=0; x < configItems.getLength(); x++) { Node lineStringNode = configItems.item(x); NodeList path = lineStringNode.getChildNodes(); pathConent = path.item(0).getNodeValue(); } } String[] tempContent = pathConent.split(" "); return tempContent; } /** * 通过连个地名获得KML然后进行DOM解析 * @param srcPlace * @param destPlace * @return */ private String[] getDirectionData(String srcPlace, String destPlace) { String urlString = "http://maps.google.com/maps?f=d&hl=en&saddr="+srcPlace+"&daddr="+destPlace+"&ie=UTF&om=0&output=kml"; Log.d("URL", urlString); Document doc = null; HttpURLConnection urlConnection = null; URL url = null; String pathConent = ""; try{ url = new URL(urlString.toString()); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); urlConnection.setDoInput(true); urlConnection.connect(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse(urlConnection.getInputStream()); } catch (Exception e){} NodeList nl = doc.getElementsByTagName("LineString"); for(int s=0; s< nl.getLength(); s++){ Node rootNode = nl.item(s); NodeList configItems = rootNode.getChildNodes(); for(int x=0; x < configItems.getLength(); x++) { Node lineStringNode = configItems.item(x); NodeList path = lineStringNode.getChildNodes(); pathConent = path.item(0).getNodeValue(); } } String[] tempContent = pathConent.split(" "); return tempContent; } }
发表评论
-
Android开发中用到的几种多线程
2012-03-12 10:42 2128在开发工程中线程可以帮助我们提高运行速度,Andro ... -
android 数据库随APK打包发布
2012-03-09 22:01 2237有些时候我们的软件用到SQLite数据库,这个时候怎么把一个做 ... -
goolge 地图地址位置解析
2012-02-24 16:50 1128Java代码package com.android.yibai ... -
Android ImageView使用网上图片资源
2012-02-24 16:47 1725Java代码package com.android.antk ... -
Android手机与WEB服务器通信
2012-02-24 12:30 2715Tomcat服务器 package com.edu.q ... -
手机于PC服务器通信
2012-02-24 12:16 1054手机客户端 package com.newsocket ... -
goolge 地图弹出气泡
2012-02-23 12:50 1552新建图层 package com.android.a ... -
GPS定位那点事
2012-02-22 15:30 1408<?xml version="1.0 ... -
手机上使用google 搜索引擎
2012-02-22 15:25 1112<?xml version="1.0&q ... -
android phoneGap开发
2012-01-15 08:42 1024PhoneGap是一个用基于HTML,CSS和JavaScri ... -
Android Google地图开发入门
2011-12-29 17:17 1769Android开发要连接GoogelMaps使用MapVi ... -
集中管理Activity
2011-12-25 15:21 1086有时候在设计软件的时候布局复杂的话不利于查看跟更改,这时 ... -
Android Dilaog 设置没有标题注意的地方
2011-12-23 12:51 1366layoutInflater = LayoutInfla ... -
AndroidUI设计美化
2011-12-18 15:52 920不要说Android中UI做的丑是因为不会美化,其实做一个 ... -
Android QQ多级列表的实现
2011-12-17 19:40 2278主类: package com.android.qu ... -
Android SharedPreferences应用解析
2011-12-11 09:52 1162在任何软件中,数据存储都是非常重要的,一定程度上来说它是软件 ... -
Android GridView,Gallery动态更新数据
2011-12-09 00:05 3012package com.android.wei.z ... -
Android 划出一个半透明的PopupWindow
2011-12-07 22:22 2731效果图好像不显示了package com.android ... -
Android 自定义BaseAdapter
2011-12-04 13:57 1287不要对俺的贴图做评价 看一下代码实现 pac ... -
Android 3D壁纸开发设计
2011-11-30 19:34 1031希望能给需要得人一点帮助,这个触屏可以改变壁纸映射, J ...
相关推荐
谷歌地图API没有有提供直接画虚线的接口,本资料提供了详细的画法
谷歌地图测量两点间直线距离
google地图 在地图上标记点 Overlay
android在google map上画导航路线图
在地图上点击,则画一个杆,多个杆连成一线。可以移动杆,线相应变化。可以画多条线。可以查询坐标。可以隐藏、删除。可以删除点击到的杆。欢迎交流53156417@qq.com 解压后,打开html文件,则可在打开的google地图上...
iOS谷歌地图路线规划功能 解压替换自己的谷歌秘钥 即可实现路线规划功能。
谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310 谷歌地图GoogleMaps3.310
在谷歌地图的开发中,免不了在地图上添加一些标注,用于增加对特殊地理位置的描述。标注一般由图符和标题组成。 用户在某个时候,可能对某一类地理点感兴趣,此时就需要把非兴趣点的标注隐藏掉,只显示用户感兴趣的...
google-map-react - 通用google地图react组件,能够在谷歌地图上渲染react组件
GoogleGoogle地图Google地图Google地图Google地图
这个文档是在自己网页中嵌入google地图,然后使用google地图的api在我们的地图上添加功能,得到更好的用户体验效果
基于谷歌地图V3.9.19,内网/专网使用需事先下载好地图瓦片(本程序自带此功能,无需第三方地图下载工具)。Web运行模式,支持PC端全浏览器(包括IE6/7/8)和手机全浏览器。 支持标注、弹窗、画线、圆、区域、平移、缩放...
地图偏差 谷歌地图 GPS地图 谷歌偏差 google地图 ,可按省份或经纬度区分,下载全部可加Q 21457588
基础知识 正向标注 反向标注 任意多边形 自定义GMarker 地图控件与地图属性 ...Google 地图 API 概念 Google 地图的“Hello, World” 加载 Google 地图 API 地图 DOM 元素 GMap2 - 基本对象 初始化地图 加载地图
JS调用Google地图 js获得Google地图坐标 左键单机获得google地图坐标以及中心坐标 缩放度
“我的位置”在地图上显示您的当前位置(通常在 1,000 米范围之内)。即使没有 GPS,您也可以确定自己的位置。 谷歌手机地图还支持内置 GPS,也可以链接到蓝牙 GPS 传感器,以便更准确地确定用户的位置.“我的位置”...
谷歌地图谷歌地图
采用离线的 Google Map API 加载离线水经注谷歌地图下载器的地图数据
好用的谷歌地图 好用的谷歌地图 好用的谷歌地图 好用的谷歌地图