概述
地图展示
(完整代码详见相关资源下载中示例工程的 MapViewActivity.java)
// 自定义地图视图
private DemoMapView mDemoMapView;
// 地图渲染控制类
private MapRenderer mRenderer;
/**
* 显示地图,
*/
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapview);
// 初始化地图
initMap();
}
/**
* 初始化地图
*/
private void initMap () {
try {
// 加载地图
mDemoMapView = (DemoMapView) findViewById(R.id.glView_mapview);
mDemoMapView.setHandler(handler);
} catch (Exception e) {
e.printStackTrace();
new MessageBox(this, false).showDialog(e.getMessage());
}
}
/*
* 自定义地图视图,所有与地图相关操作均可自定义实现
*/
public class DemoMapView extends MapView {
// 初始化放大图绘制使用的view
// 开始模拟导航
// 结束模拟导航
// 绘制放大图
// 绘制指定Maneuver的箭头
// 绘制摄像头
// 绘制出多条路线
// 绘制单条路线
// 设置路线是否开启Tmc模式
// 将路线显示在地图上
// 设置目的地
// 开始算路
// 控制是否锁车
// 获取车当前的位置
// 设置当前车的角度,用于导航时更新车的角度
// 在地图指定位置显示一个POI的信息
// 将指定的路线隐藏
// 删除所有路线
// 地图放大操作
// 地图缩小操作
// ……
}
覆盖物
(完整代码详见相关资源下载中示例工程的 OverlayActivity.java)
// 打点
Point point = new Point(11638780, 3998076); // 创建点对象
CircleOverlay circle = new CircleOverlay(point, 0f); // 创建以point对象为中心的一个点
mRenderer.addOverlay(circle);//将点绘制在地图上
// 气泡
Vector2D pivot = new Vector2D(0.5f, 0.0f); // 设置气泡在点上的偏移量
Annotation an = new Annotation(1, point, 1101, pivot); // 在点point上创建一个偏移量为pivot的气泡
CalloutStyle calloutStyle = an.getCalloutStyle(); // 获取气泡样式
calloutStyle.leftIcon = 0; // 气泡左侧的图标为空
calloutStyle.rightIcon = 0; // 气泡右侧的图标为空
an.setCalloutStyle(calloutStyle); // 为气泡设置显示样式
an.setTitle("自定义POI点"); // 为气泡设置显示标题内容
mRenderer.addAnnotation(an); // 在地图上添加气泡
an.showCallout(true); // 设置气泡可显示
POI搜索
(完整代码详见相关资源下载中示例工程的 NewSearchActivity.java)
/**
* 初始化需要使用的引擎 这里主要使用了POI搜索引擎和绘图引擎
*/
private void init () {
……
// 初始化POI搜索引擎
mPoiSearch = new PoiSearch();
// 设置搜索模式:
// onlineOnly在线搜索 offlineOnly离线搜索
mPoiSearch.setDataPreference(DataPreference.onlineOnly);
// 设置搜索城市id
mPoiSearch.setCity(cityName);
// 设置搜索中心点
mPoiSearch.setCenter(mCenter); // 注册搜索监听回调方法
// 地图上打点
private void drawAnnotation() {
mAnnotations.clear();
Vector2DF vec = new Vector2DF(0.9f, 0.5f);
Point point = new Point();
int zlevel = 100;
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.gas);
for (int i = 0; i < mPoiItems.size(); i++) {
point.x = mPoiItems.get(i).position.x;
point.y = mPoiItems.get(i).position.y;
CustomAnnotation annot = new CustomAnnotation(zlevel, point, i, vec, icon);
annot.setTitle(mPoiItems.get(i).name);
mAnnotations.add(annot);
}
for (int i = 0; i < mAnnotations.size(); i++) {
mDemoMapView.getMapRenderer().addAnnotation(mAnnotations.get(i));
}
if (mPoiItems.size() > 0) {
// 移动地图中心
mDemoMapView.setWorldCenter(mPoiItems.get(0).position);
}
}
//删除地图上打的点
private void clearAnnotation() {
for (int i = 0; i < mAnnotations.size(); i++) {
mDemoMapView.getMapRenderer().removeAnnotation(mAnnotations.get(i));
}
}
离线数据
// 初始化数据,添加数据加载回调
OfflineDataStoreManager.getInstance().initData(this);
// 数据加载回调
@Override
public void onDataSuccess(DatastoreItem[] datastoreItems) {
// 数据加载成功
progressBar.setVisibility(View.GONE);
this.datastoreItems = datastoreItems;
if (datastoreItems != null) {
// 设置listView数据源
DownloadAdapter downloadAdapter = new DownloadAdapter(this, datastoreItems);
mListView.setAdapter(downloadAdapter);
}
}
@Override
public void onDataFailure() {
//数据加载失败
progressBar.setVisibility(View.GONE);
Toast.makeText(this, "refresh faile", Toast.LENGTH_SHORT).show();
}
@Override
public void onDataCancle() {
// 数据加载取消
progressBar.setVisibility(View.GONE);
Toast.makeText(this, "refresh cancel", Toast.LENGTH_SHORT).show();
}
最后
以上就是苗条荷花为你收集整理的android地图开发放大效果,概述 | Android 地图 SDK | 开发支持 | 四维地图开放平台...的全部内容,希望文章能够帮你解决android地图开发放大效果,概述 | Android 地图 SDK | 开发支持 | 四维地图开放平台...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复