再来一个简单一些的自定义地图类型示例:QQ地图,QQ地图URL规则比较简单。1-17级都是有一层组成,选用GENERIC_MAPTYPE_5作为QQ地图类型,直接在CustomMap修改代码如下:
package com.pstreets.gisengine.demo;
import com.mapdigit.gis.raster.ICustomMapType;
import com.mapdigit.gis.raster.MapType;
import com.mapdigit.gis.geometry.GeoLatLng;
import com.pstreets.gisengine.R;
import com.pstreets.gisengine.SharedMapInstance;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class CustomMap extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onStart() {
super.onStart();
MapType.setCustomMapTileUrl(new TiandiMapType());
GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);
SharedMapInstance.map.setCenter(center, 13, MapType.GENERIC_MAPTYPE_5);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mapzoom_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.zoomin:
SharedMapInstance.map.zoomIn();
return true;
case R.id.zoomout:
SharedMapInstance.map.zoomOut();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
class TiandiMapType implements ICustomMapType {
private static int serverIndex=1;
public String getTileURL(int mtype, int x, int y, int zoomLevel) {
String returnURL="";
serverIndex+=1;
serverIndex%=3;
int maxTiles=(int)Math.pow(2, zoomLevel);
switch(mtype){
case MapType.GENERIC_MAPTYPE_5:
returnURL= "http://p"
+ serverIndex+".map.qq.com/maptiles/" ;
y=maxTiles-y-1;
returnURL+=+zoomLevel
+"/"+(int)(x/16)+"/"+(int)(y/16)+"/"+x+"_"+y+".gif";
break;
case MapType.GENERIC_MAPTYPE_6:
if(zoomLevel<11){
returnURL= "http://tile"
+ serverIndex+".tianditu.com/DataServer?T=A0512_EMap";
returnURL+="&X="+x+"&Y="+y+"&L="+zoomLevel;
}else if(zoomLevel<13){
returnURL= "http://tile"
+ serverIndex+".tianditu.com/DataServer?T=B0627_EMap1112";
returnURL+="&X="+x+"&Y="+y+"&L="+zoomLevel;
}else{
returnURL= "http://tile"
+ serverIndex+".tianditu.com/DataServer?T=siwei0608";
returnURL+="&X="+x+"&Y="+y+"&L="+zoomLevel;
}
break;
case MapType.GENERIC_MAPTYPE_7:
if(zoomLevel<11){
returnURL= "http://tile"
+ serverIndex+".tianditu.com/DataServer?T=AB0512_Anno";
returnURL+="&X="+x+"&Y="+y+"&L="+zoomLevel;
}else{
returnURL=MapType.EMPTY_TILE_URL;
}
break;
}
return returnURL;
}
}
QQ地图的分片方法和Google中国地图分片方法一致,经纬度坐标无需调整。
Android引路蜂地图开发包Ver2.1下载
分享到:
相关推荐
分享功能是app中特别常见的功能,国内的app基本都支持分享到微信 QQ等主流的社交应用。至于分享功能的实现大多是使用第三方的share sdk一步到位,或者分享的app比较少比如就一个微信 那通常使用微信sdk的分享模块...
主要为大家详细介绍了Android自定义View仿QQ运动步数效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android_flowlayout 该项目就是模仿各种应用中的热门标签之类的布局效果,提交了算是代码积累吧 项目主要用到的技术: 1.自定义ViewGroup 运行部分截图: 使用 算是个人学习的项目记录吧,如果...QQ: 820215725 网站:
最近发现QQ讨论组的头像非常不错,正好最近又有时间,所有就动手实践了下,所以下面这篇文章主要给大家介绍了Android自定义View模仿QQ讨论组头像效果的相关资料,文中给出了详细的介绍的示例代码,需要的朋友可以...
联系: QQ 839539179 WEIXIN tuojie003 VerificationCodeView —正方形验证码输入框 示例: apk演示:点击下载 特性 自定义属性 name 说明 format 默认值 icv_et_number 输入框的数量 integer 1 icv_et...
这Demo主要介绍了Android开发从相册中选取照片的示例代码,非常具有实用价值,需要的朋友可以参考下
Android自定义View研究-- 一个小Demo Android调用相册拍照实现系统控件缩放切割图片 Android SQLite的实例汇总大全 两分钟彻底让你明白Android Activity生命周期(图文)! Android 图形系统剖析 Android 立体效果图片...
整体思路:两个界面本质是一个View,左右排列,通过一个水平滚动条来实现(示例中自定义了一个View继承自HorizontalScrollView)。起始状态滚动条在靠近中间的位置,这样就显示出了内容区域。当从内容区向左侧滑时,...
实验内容: 内容1:参考教材P92的Spinner使用示例与P96的RatingBar使用示例完成这两个控件及 监听事件。 程序代码及运行结果: 实验代码: Activity代码: Layout代码: 结果截图: 实验四 数据存储与SQLite数据库 ...
本文介绍了android 仿QQ动态背景、视频背景的示例代码,分享给大家,具体如下: 效果如下: 如上图类似效果图: 1, 自定义视频类 继承VideoView public class CustomVideoView extends VideoView { ...
根据以上需求在网络上查找响应的例子,也有仿QQ侧滑代码,但不能满足2和3的要求,因此修改了一把,代码如下,共大家拍砖 第一步:重写ListView public class SwipeListView extends ListView { private final ...
> TimetableView是一款开源的Android课程表控件,你可以在 ChangeLog 查看本控件的开发进展,作者联系方式1193600556@qq.com TimetableView是一款开源的、完善、高效的Android课程表控件。 支持xml设置属性 丰富的...
QQ交流群: 若无法下载demo,可以在QQ交流群的群文件下载,文件名为demo-release,下载最新的即可。 无选中状态(默认UI色调) 选中状态( ) 其他功能(各功能可自选) 专辑列表(默认UI色调) 相册带广告( ) ...
简明、完整、全面的安卓开发demo集合,包含如下示例 1、LinearLayout Button、RadioGroup、 CheckBox 2、TableLayout 3、FrameLayout 霓虹灯效果 4、RelativeLayout 梅花效果 5、自定义view跟着触点走的小球 6、 ...
2014.10.28 002 QQ聊天 / 服务器端数据交互的示例 2014.10.29 003 省市区三级联动 / 自定义滑动选择控件 2014.10.30 004 android页面切换各种动画效果 2014.11.08 005 高仿微信主界面,动画滑动效果 2014.11.08 006 ...
最近由于Android基础知识讲解需要,采用单Activity多Fragment实现类似QQ底部导航器示例,这种开发模式广泛应用于App开发,比如QQ,微信,新浪等,关于Android底部导航栏的实现方式特别多,实现也是五花八门,同时...
示例代码 PromptViewHelper pvHelper = new PromptViewHelper(mActivity); pvHelper.setPromptViewManager(new ChatPromptViewManager(mActivity)); pvHelper.addPrompt(holder.itemView.findViewById(R.id....
第三部分(第5~6章)重点介绍了公众平台的自定义菜单接口和高级接口,并配有完整的接口调用示例和说明。 第四部分(第7~11章)首先总结了一些实用的公众平台开发技巧,如使用表情、识别微信浏览器、图文消息使用...
帮助读者正确使用开发环境,着力于QML语言基础,事件qtquick 基本元素,qml与C++混合编程Canvas,定制以及自定义控件等高级主题,本书提供了精彩的示例,内容适用于桌面和android平台
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...