Android开发速成简洁教程二十一:访问Internet绘制在线地图

在例子Android简明开发教程十七:Dialog 显示图像中我们留了一个例子DrawMap()没有实现,这个例子显示在线地图,目前大部分地图服务器都是将地图以图片存储以提高响应速度。 一般大小为256X256个像素。具体可以参见离线地图下载方法解析。

比如: URL http://www.mapdigit.com/guidebeemap/maptile.php?type=MICROSOFTMAP&x=7&y=4&z=14 显示:

下面的例子访问Internet下载地图图片,并拼接成地图显示,这种方法也是引路蜂地图开发包实现的一个基本原则。

Android应用访问Internet,首先需要赋予应用有访问Internet的权限:在AndroidManifest.xml中添加:

 
 
 
 
  1. <uses-permission android:name=”android.permission.INTERNET” /> 

然后实现DrawMap()如下:

 
 
 
 
  1. private void drawMap(){ 
  2.  try{     
  3.  graphics2D.clear(Color.WHITE); 
  4.  graphics2D.Reset(); 
  5.  for(int x=6;x<8;x++) 
  6.  { 
  7.  for(int y=3;y<5;y++){ 
  8.  String urlString="http://www.mapdigit.com/guidebeemap"
  9.  urlString+="/maptile.php?type=MICROSOFTMAP"
  10.  urlString+="&x="+x+"&y="+y+"&z=14"
  11.  URL url=new URL(urlString); 
  12.  URLConnection connection=url.openConnection(); 
  13.  HttpURLConnection httpConnection=(HttpURLConnection)connection; 
  14.  int responseCode=httpConnection.getResponseCode(); 
  15.  if(responseCode==HttpURLConnection.HTTP_OK){ 
  16.  InputStream stream=httpConnection.getInputStream(); 
  17.  Bitmap bitmap=BitmapFactory.decodeStream(stream); 
  18.  int []buffer=new int[bitmap.getHeight() 
  19.  * bitmap.getWidth()]; 
  20.  bitmap.getPixels(buffer, 0, bitmap.getWidth(), 00
  21.  bitmap.getWidth(), bitmap.getHeight()); 
  22.  graphics2D.drawImage(buffer,bitmap.getWidth(), 
  23.  bitmap.getHeight(),(x-6)*256,(y-3)*256);     
  24.  } 
  25.  } 
  26.  } 
  27.  graphic2dView.refreshCanvas();   
  28.  }catch(Exception e){     
  29.  } 

Android中访问Internet类主要定义在java.net.* 和android.net.*包中。上面显示结果如下:

地图没有显示满屏是因为Graphics2D创建的Canvas大小没有创建满屏,创建的大小是240X320,如果创建满屏的,则可以满屏显示地图。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/7091.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月9日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注