首先说一下注意事项:之前测试过百度的地图,现在要加一个餐饮店的详情页,没留意官网更新,就直接把以前下载的包拿来用,结果MKSearchListener里没有poiDetailSearch这个方法,然后去官网下载了个新包,加载上之后运行,点击查到的兴趣点的时候出错了,报的是空指针,又没提示在哪一行,各种验证之后无果,没办法,然后我把错误信息复制到度娘那里去找,居然只有一个人遇到这个问题,而且还没有解决,再后来下载一个新版本的demo,才知道原来是新版本里面有些方法和之前的写法不一样了,我把包换成原来的,运行正常!!,让我纳闷半天,以为不小心改动了什么地方呐,-
-!
废话不多说了,下面这是目前最新的版本,正好新增功能就是我需要的那个
新增:
- 开放餐饮类Place详情页
- 支持LBS云检索,实现用户数据地图展现,新增云检索类
然后就是实现全过程了:
首先是准备工作:
加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
加包
在项目Libraries里添加baidumapapi.jar,将libBMapApiEngine_v1_3_5.so复制到工程目录下的libs\armeabi
布局文件main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.baidu.mapapi.MapView
android:id="@+id/loca_mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>
然后就是重点了
import java.util.ArrayList;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKPoiInfo;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.Overlay;
import com.baidu.mapapi.PoiOverlay;
public class LocaMapActivity extends com.baidu.mapapi.MapActivity {
private BMapManager mapmanager = null;
private LocationManager mlocmanager = null;
private double mLat;
private double mLon;
private MapView mMapView = null;
private MKSearch mkserach = null;
private String name;
private int juli;
MKPoiResult mRes = null; // poi检索结果
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.locamap);
init();
mkserach = new MKSearch();
mkserach.init(mapmanager, new MySearchListener());// 注意,MKSearchListener只支持一个,以最后一次设置为准
name = this.getIntent().getExtras().getString("name");
juli = Integer.parseInt(this.getIntent().getExtras().getString("juli"));
// 查找周边商户(name和juli是用户选择的查询条件 name:餐饮,酒店,ATM之类的,juli是500,1000,2000)
mkserach.poiSearchNearBy(name, new GeoPoint((int) (34.824349 * 1E6),(int) (113.688586 * 1E6)), juli);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
private void init() {
// 默认坐标
mLat = 34.824349;
mLon = 113.688586;
mapmanager = new BMapManager(LocaMapActivity.this);
mapmanager.init("4B5C387B4901FB04FD45150A6628E95E6B2E68F0", null);
mapmanager.start();
super.initMapActivity(mapmanager);
mMapView = (MapView) findViewById(R.id.loca_mapView);
mMapView.setBuiltInZoomControls(true); // 设置启用内置的缩放控件
MapController mMapController = mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
GeoPoint point = new GeoPoint((int) (mLat * 1E6), (int) (mLon * 1E6));//用默认的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
mMapController.setCenter(point); // 设置地图中心点
mMapController.setZoom(16); // 设置地图zoom级别
mMapView.setTraffic(true);// 交通图
// mMapView.setSatellite(true);//卫星图
mMapView.getOverlays().add(new MyOverlay());
mMapView.getOverlays().add(new PoiOverlay(LocaMapActivity.this, mMapView, mkserach)); // 添加ItemizedOverlay实例到mMapView
}
/*
* Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法,实现用户自定义图层显示。
* MyLocationOverlay:一个负责显示用户当前位置的Overlay。
*ItemizedOverlay<Item extends OverlayItem >:Overlay的一个基类,包含了一个OverlayItem列表,相当于一组分条的Overlay,通过继承此类,将一组兴趣点显示在地图上。
* PoiOverlay:本地搜索图层,提供某一特定地区的位置搜索服务,比如在北京市搜索“公园”,通过此图层将公园显示在地图上。
*/
public class MyOverlay extends Overlay {
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
mLat = 34.824349;
mLon = 113.688586;
GeoPoint geoPoint = new GeoPoint((int) (mLat * 1E6),
(int) (mLon * 1E6));
Paint paint = new Paint();
// 在当前的位置绘制一个String
Point point = mMapView.getProjection().toPixels(geoPoint, null);
canvas.drawText("★默认当前位置", point.x, point.y, paint);
}
}
/**
* @author Administrator 搜索服务
* 百度地图移动版API集成搜索服务包括:位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索,
* 通过初始化MKSearch类,注册搜索结果的监听对象MKSearchListener,实现异步搜索服务。
* 首先自定义MySearchListener实现MKSearchListener接口,通过不同的回调方法,获得搜索结果:
*/
class MySearchListener implements MKSearchListener {
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiResult(MKPoiResult result, int arg1, int error) {
if (result == null) {
return;
}
mRes=result;
PoiOverlay poioverlay = new PoiOverlay(LocaMapActivity.this, mMapView,mkserach);
poioverlay.setData(result.getAllPoi());
mMapView.getOverlays().clear();
mMapView.getOverlays().add(poioverlay);
mMapView.invalidate(); //刷新地图
mMapView.getController().animateTo(result.getPoi(0).pt);
}
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiDetailSearchResult(int arg0, int error) {
// TODO Auto-generated method stub
try {
if (error!=0) {
Toast.makeText(LocaMapActivity.this, "未找到商户详细信息", Toast.LENGTH_SHORT).show();
}else{
if (mRes != null) {
ArrayList<MKPoiInfo> allPoi = mRes.getAllPoi();
if (allPoi.get(0).hasCaterDetails) {
mkserach.poiDetailSearch(allPoi.get(0).uid);
}
}
}
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(LocaMapActivity.this, e.toString(), 1000).show();
}
}
@Override
public void onGetRGCShareUrlResult(String arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetSuggestionResult(MKSuggestionResult result, int arg1) {
// TODO Auto-generated method stub
}
}
protected void onDestroy() {
if (mapmanager != null) {
mapmanager.destroy();
mapmanager = null;
}
super.onDestroy();
}
@Override
protected void onPause() {
if (mapmanager != null) {
mapmanager.stop();
}
super.onPause();
}
@Override
protected void onResume() {
if (mapmanager != null) {
mapmanager.start();
}
super.onResume();
}
}
分享到:
相关推荐
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
城市旅游产业的日新月异影响着村镇旅游产业的发展变化。网络、电子科技的迅猛前进同样牵动着旅游产业的快速成长。随着人们消费理念的不断发展变化,越来越多的人开始注意精神文明的追求,而不仅仅只是在意物质消费的提高。塞北村镇旅游网站的设计就是帮助村镇发展旅游产业,达到宣传效果,带动一方经济发展。而在线消费与查询正在以高效,方便,时尚等的特点成为广大互联网用户的首选。塞北村镇旅游网站设计与开发以方便、快捷、费用低的优点正慢慢地进入人们的生活。人们从传统的旅游方式转变为在线预览,减轻了劳动者的工作量。使得旅游从业人员有更多时间来获取、了解、掌握信息。 塞北村镇旅游网站根据当地旅游风景和特色的实际情况,设计出一套适合当地旅游信息网站,通过网络,实现该网站的推广从而达到宣传的效果。 本系统在设计方面采用JSP和Java语言以及html脚本语言,同时采用B/S模式,进行各个界面和每个功能的设计与实现,后台管理与设计选用了SQL Server 2005数据库,前台设计与后台管理相结合,共同完成各功能模块的功能。
JSP考试系统_jspks.rar是一个为计算机专业学生和教师设计的JSP源码资料包,它提供了一个全面的、易于使用的在线考试平台。这个系统是基于Java Server Pages (JSP)技术构建的,这是一种用于创建动态网页的服务器端技术。通过这个系统,用户可以创建、管理和参加在线考试。这个系统的主要功能包括:用户注册和登录,试题管理(包括添加、修改和删除试题),试卷管理(包括创建、编辑和删除试卷),考试管理(包括开始、暂停和结束考试),成绩管理(包括查看和统计成绩)等。此外,系统还提供了丰富的试题类型,如选择题、填空题、判断题和简答题等,以满足不同的考试需求。JSP考试系统的界面设计简洁明了,操作方便,无论是教师还是学生都可以轻松上手。对于教师来说,他们可以通过这个系统轻松地管理试题和试卷,节省了大量的时间和精力。对于学生来说,他们可以随时随地参加在线考试,方便快捷。总的来说,JSP考试系统_jspks.rar是一个非常实用的JSP源码资料包,它不仅可以帮助学生更好地学习和掌握JSP技术,也可以帮助教师更有效地管理在线考试。无论是对于学生还是教师,这个系统都是一个不可或缺的工具。重
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
词向量
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
基于matlab开发的光谱数据预处理程序,包括MSC,SNV,归一化,中心化,导数等等.rar
优秀源码设计,详情请查看资源源码内容
基于matlab开发的TD-LTE随机接入过程前导序列检测算法Matlab信道仿真.rar
词向量 词向量(Word Vectors)是一种用来表示词语语义和语法信息的数学模型。它将词语转换为固定长度的实数向量,使得词向量之间的距离(通常使用余弦相似度)可以反映出词语之间的语义关系。词向量在自然语言处理和机器学习领域有广泛的应用,例如文本分类、情感分析、句子相似度计算等。 词向量的发展经历了从传统的one-hot表示到分布式表示的转变。传统的one-hot表示将每个词语表示为一个高维稀疏的向量,向量中只有一个元素为1,其余元素都为0,表示词语在词汇表中的位置。然而,这种表示方式无法准确捕捉词语之间的语义关系。 为了解决这个问题,分布式表示方法被提出。分布式表示将每个词语表示为一个低维稠密的实数向量,其中每个元素都包含了词语的语义和语法信息。这种表示方式的关键思想是,具有相似语义和上下文的词语在向量空间中更加接近。 现在广泛应用的词向量模型有许多种,其中最著名的是Word2Vec模型和GloVe模型。Word2Vec是一种基于神经网络的模型,它通过一种称为连续词袋(CBOW)和另一种称为跳字(Skip-gram)的训练方法来学习词向量。GloVe模型是一种基于全局词频的词
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
超市会员积分管理系统主要用于实现了企业管理数据统计等。本系统结构如下: (1)网络会员管理中心界面: 会员修改密码信息模块:实现会员密码功能; 会员登陆模块:实现会员登陆功能; 会员注册模块:实现会员注册功能; 留言板模块:实现留言板留言功能 (2)后台管理界面: 系统用户管理模块:实现管理员的增加、查看功能; 会员信息管理模块:实现会员信息的增加、修改、查看功能; 注册用户管理模块:实现注册用户的增加、修改、查看功能; 会员卡管理模块:实现会员卡信息的增加、查看功能; 商品销售管理模块:实现商品信息的增加、查看功能; 会员积分管理模块:实现合作公司信息的增加、查看功能; 信息统计模块:实现数据统计报表功能; 留言板模块:实现留言板信息的增加、修改、查看功能;
信息办公XML考试系统_xmlks.rar是一款专为计算机专业设计的JSP源码资料包。这个资料包包含了丰富的功能和特性,旨在为教育机构、培训中心和企业提供一个完整的在线考试解决方案。通过使用这个资料包,用户可以轻松地创建和管理自己的在线考试平台,实现对学员的考试、评分和成绩管理。首先,这个资料包采用了流行的JSP技术,结合了XML数据存储和处理,使得系统具有很高的可扩展性和灵活性。用户可以方便地根据自己的需求定制和修改系统的功能和界面。同时,系统还支持多种题型,如选择题、填空题、判断题等,满足不同类型考试的需求。其次,信息办公XML考试系统_xmlks.rar具有良好的用户体验和易用性。系统的界面设计简洁明了,操作流程清晰易懂,使得考生可以快速上手并完成考试。同时,系统还提供了丰富的帮助文档和教程,方便用户在使用过程中随时查阅和学习。此外,这个资料包还具有强大的后台管理功能。管理员可以轻松地添加、删除和修改试题,设置考试参数,查看考生的成绩和答题情况。同时,系统还支持多种权限管理,确保数据的安全性和保密性。总之,信息办公XML考试系统_xmlks.rar是一款功能强大、易用性高、可扩展
该资源包“130222.rar”是一个针对计算机专业学生或开发者设计的基于Java服务器页面(JSP)、Servlet以及MySQL数据库的博客系统网站的源码资料。这个压缩文件包含了构建一个功能齐全的动态网站所需的全部源代码和相关文档,它允许用户通过互联网发布文章、分享观点,并与他人进行互动。在内容上,它可能包含了多个JSP页面文件,用于展示博客首页、文章列表、文章内容页、写文章的表单等界面;包含了Servlet类文件,用于处理用户的请求、与数据库交互以及业务逻辑的处理;还可能包含配置文件如web.xml,用于配置Servlet映射等。至于数据库部分,则包括了MySQL的数据库文件,其中存储了博客系统的数据结构、初始数据以及存储过程等。此资料包是一套学习和实践Web开发的好材料,尤其适合那些想要深入学习JSP、Servlet和数据库交互技术的学习者。通过分析和运行这些源码,学习者可以了解Web应用的开发流程,掌握如何在Java Web环境中使用MVC设计模式,以及如何实现用户身份验证、会话管理、数据持久化等关键功能。由于是基于JSP的传统Web开发技术,虽然现代Web开发领域已逐渐向全
可视化图库Pandas_Alive实现动态图表绘制,使用时减少数据会使生成GIF的时间变短。通过对CSV文件分析,实现动态条形图、动态曲线图、气泡图、饼状图、地理空间图等多个动态图表的可视化分析。
基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现基于SSM的“停车场管理系统”的设计与实现
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
学生成绩管理系统c