Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kaoshuangli9552
mockgps
提交
c57ed8b4
M
mockgps
项目概览
kaoshuangli9552
/
mockgps
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mockgps
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
c57ed8b4
编写于
10月 29, 2018
作者:
V
Vergil
提交者:
GitHub
10月 29, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add files via upload
上级
f38917a4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
152 addition
and
122 deletion
+152
-122
app/src/main/java/mapapi/overlayutil/PoiOverlay.java
app/src/main/java/mapapi/overlayutil/PoiOverlay.java
+152
-122
未找到文件。
app/src/main/java/mapapi/overlayutil/PoiOverlay.java
浏览文件 @
c57ed8b4
package
mapapi.overlayutil
;
import
android.os.Bundle
;
import
com.baidu.mapapi.map.BaiduMap
;
import
com.baidu.mapapi.map.BitmapDescriptorFactory
;
import
com.baidu.mapapi.map.Marker
;
import
com.baidu.mapapi.map.MarkerOptions
;
import
com.baidu.mapapi.map.OverlayOptions
;
import
com.baidu.mapapi.map.Polyline
;
import
com.baidu.mapapi.search.poi.PoiResult
;
import
com.example.mockgps.R
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 用于显示poi的overly
*/
public
class
PoiOverlay
extends
OverlayManager
{
private
static
final
int
MAX_POI_SIZE
=
10
;
private
PoiResult
mPoiResult
=
null
;
private
BaiduMap
mBaiduMap
;
/**
* 构造函数
*
* @param baiduMap
* 该 PoiOverlay 引用的 BaiduMap 对象
*/
public
PoiOverlay
(
BaiduMap
baiduMap
)
{
super
(
baiduMap
);
mBaiduMap
=
baiduMap
;
}
/**
* 设置POI数据
*
* @param poiResult
* 设置POI数据
*/
public
void
setData
(
PoiResult
poiResult
)
{
this
.
mPoiResult
=
poiResult
;
}
@Override
public
final
List
<
OverlayOptions
>
getOverlayOptions
()
{
if
(
mPoiResult
==
null
||
mPoiResult
.
getAllPoi
()
==
null
)
{
return
null
;
}
List
<
OverlayOptions
>
markerList
=
new
ArrayList
<
OverlayOptions
>();
for
(
int
i
=
0
;
i
<
mPoiResult
.
getAllPoi
().
size
();
i
++)
{
if
(
mPoiResult
.
getAllPoi
().
get
(
i
).
location
==
null
)
{
continue
;
}
Bundle
bundle
=
new
Bundle
();
bundle
.
putInt
(
"index"
,
i
);
markerList
.
add
(
new
MarkerOptions
()
.
icon
(
BitmapDescriptorFactory
.
fromAssetWithDpi
(
"ic_location_on_black_36dp.png"
)).
extraInfo
(
bundle
)
.
position
(
mPoiResult
.
getAllPoi
().
get
(
i
).
location
));
// markerList.add(new MarkerOptions()
// .icon(BitmapDescriptorFactory.fromAssetWithDpi("Icon_mark"
// + markerSize + ".png")).extraInfo(bundle)
// .position(mPoiResult.getAllPoi().get(i).location));
}
return
markerList
;
}
/**
* 获取该 PoiOverlay 的 poi数据
*
* @return
*/
public
PoiResult
getPoiResult
()
{
return
mPoiResult
;
}
/**
* 覆写此方法以改变默认点击行为
*
* @param i
* 被点击的poi在
* {@link com.baidu.mapapi.search.poi.PoiResult#getAllPoi()} 中的索引
* @return
*/
public
boolean
onPoiClick
(
int
i
)
{
// if (mPoiResult.getAllPoi() != null
// && mPoiResult.getAllPoi().get(i) != null) {
// Toast.makeText(BMapManager.getInstance().getContext(),
// mPoiResult.getAllPoi().get(i).name, Toast.LENGTH_LONG)
// .show();
// }
return
false
;
}
@Override
public
final
boolean
onMarkerClick
(
Marker
marker
)
{
if
(!
mOverlayList
.
contains
(
marker
))
{
return
false
;
}
if
(
marker
.
getExtraInfo
()
!=
null
)
{
// marker.setAnimation(getScaleAnimation());
// marker.startAnimation();
mBaiduMap
.
clear
();
addToMap
();
mBaiduMap
.
addOverlay
(
new
MarkerOptions
().
position
(
marker
.
getPosition
()).
icon
(
BitmapDescriptorFactory
.
fromResource
(
R
.
drawable
.
icon_gcoding
)));
// marker.setIcon(BitmapDescriptorFactory.fromAssetWithDpi("ic_location_on_black_48dp.png"));
return
onPoiClick
(
marker
.
getExtraInfo
().
getInt
(
"index"
));
}
return
false
;
}
@Override
public
boolean
onPolylineClick
(
Polyline
polyline
)
{
// TODO Auto-generated method stub
return
false
;
}
}
package
mapapi.overlayutil
;
import
android.os.Bundle
;
import
android.util.Log
;
import
com.baidu.mapapi.map.BaiduMap
;
import
com.baidu.mapapi.map.BitmapDescriptorFactory
;
import
com.baidu.mapapi.map.Marker
;
import
com.baidu.mapapi.map.MarkerOptions
;
import
com.baidu.mapapi.map.OverlayOptions
;
import
com.baidu.mapapi.map.Polyline
;
import
com.baidu.mapapi.search.poi.PoiResult
;
import
com.baidu.mapapi.search.sug.SuggestionResult
;
import
com.example.mockgps.R
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 用于显示poi的overly
*/
public
class
PoiOverlay
extends
OverlayManager
{
private
static
final
int
MAX_POI_SIZE
=
10
;
private
PoiResult
mPoiResult
=
null
;
private
SuggestionResult
mSuggestionResult
=
null
;
private
BaiduMap
mBaiduMap
;
/**
* 构造函数
*
* @param baiduMap 该 PoiOverlay 引用的 BaiduMap 对象
*/
public
PoiOverlay
(
BaiduMap
baiduMap
)
{
super
(
baiduMap
);
mBaiduMap
=
baiduMap
;
}
/**
* 设置POI数据
*
* @param poiResult 设置POI数据
*/
public
void
setData
(
PoiResult
poiResult
)
{
this
.
mPoiResult
=
poiResult
;
}
public
void
setSugData
(
SuggestionResult
sugResult
)
{
this
.
mSuggestionResult
=
sugResult
;
}
@Override
public
final
List
<
OverlayOptions
>
getOverlayOptions
()
{
if
((
mPoiResult
==
null
||
mPoiResult
.
getAllPoi
()
==
null
)
&&
(
mSuggestionResult
==
null
||
mSuggestionResult
.
getAllSuggestions
()
==
null
))
{
return
null
;
}
List
<
OverlayOptions
>
markerList
=
new
ArrayList
<
OverlayOptions
>();
int
curInd
=
0
;
if
(!(
mPoiResult
==
null
||
mPoiResult
.
getAllPoi
()
==
null
)){
for
(
int
i
=
0
;
i
<
mPoiResult
.
getAllPoi
().
size
();
i
++)
{
if
(
mPoiResult
.
getAllPoi
().
get
(
i
).
location
==
null
)
{
continue
;
}
// curInd = i;
Bundle
bundle
=
new
Bundle
();
bundle
.
putInt
(
"index"
,
curInd
++);
markerList
.
add
(
new
MarkerOptions
()
.
icon
(
BitmapDescriptorFactory
.
fromAssetWithDpi
(
"ic_location_on_black_36dp.png"
)).
extraInfo
(
bundle
)
.
position
(
mPoiResult
.
getAllPoi
().
get
(
i
).
location
));
// markerList.add(new MarkerOptions()
// .icon(BitmapDescriptorFactory.fromAssetWithDpi("Icon_mark"
// + markerSize + ".png")).extraInfo(bundle)
// .position(mPoiResult.getAllPoi().get(i).location));
}
}
if
(!(
mSuggestionResult
==
null
||
mSuggestionResult
.
getAllSuggestions
()
==
null
)){
// curInd++;
for
(
int
j
=
0
;
j
<
mSuggestionResult
.
getAllSuggestions
().
size
();
j
++)
{
if
(
mSuggestionResult
.
getAllSuggestions
().
get
(
j
).
pt
==
null
)
{
continue
;
}
Bundle
bundle
=
new
Bundle
();
bundle
.
putInt
(
"index"
,
curInd
++);
markerList
.
add
(
new
MarkerOptions
()
.
icon
(
BitmapDescriptorFactory
.
fromAssetWithDpi
(
"ic_location_on_black_36dp.png"
)).
extraInfo
(
bundle
)
.
position
(
mSuggestionResult
.
getAllSuggestions
().
get
(
j
).
pt
));
}
}
return
markerList
;
}
/**
* 获取该 PoiOverlay 的 poi数据
*
* @return
*/
public
PoiResult
getPoiResult
()
{
return
mPoiResult
;
}
public
SuggestionResult
getSugResult
()
{
return
mSuggestionResult
;
}
/**
* 覆写此方法以改变默认点击行为
*
* @param i 被点击的poi在
* {@link com.baidu.mapapi.search.poi.PoiResult#getAllPoi()} 中的索引
* @return
*/
public
boolean
onPoiClick
(
int
i
)
{
// if (mPoiResult.getAllPoi() != null
// && mPoiResult.getAllPoi().get(i) != null) {
// Toast.makeText(BMapManager.getInstance().getContext(),
// mPoiResult.getAllPoi().get(i).name, Toast.LENGTH_LONG)
// .show();
// }
return
false
;
}
@Override
public
final
boolean
onMarkerClick
(
Marker
marker
)
{
if
(!
mOverlayList
.
contains
(
marker
))
{
return
false
;
}
if
(
marker
.
getExtraInfo
()
!=
null
)
{
// marker.setAnimation(getScaleAnimation());
// marker.startAnimation();
mBaiduMap
.
clear
();
addToMap
();
mBaiduMap
.
addOverlay
(
new
MarkerOptions
().
position
(
marker
.
getPosition
()).
icon
(
BitmapDescriptorFactory
.
fromResource
(
R
.
drawable
.
icon_gcoding
)));
// marker.setIcon(BitmapDescriptorFactory.fromAssetWithDpi("ic_location_on_black_48dp.png"));
return
onPoiClick
(
marker
.
getExtraInfo
().
getInt
(
"index"
));
}
return
false
;
}
@Override
public
boolean
onPolylineClick
(
Polyline
polyline
)
{
// TODO Auto-generated method stub
return
false
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录