Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
此号慢热型
o2oa
提交
2ae76de5
o2oa
项目概览
此号慢热型
/
o2oa
与 Fork 源项目一致
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2ae76de5
编写于
8月 10, 2020
作者:
F
fancy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
第三方地图打开位置信息
上级
62d3d7a7
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
129 addition
and
5 deletion
+129
-5
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/im/O2LocationActivity.kt
...and/x/bpm/mobile/v1/zoneXBPM/app/im/O2LocationActivity.kt
+94
-3
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/o2/login/LoginActivity.kt
...nd/x/bpm/mobile/v1/zoneXBPM/app/o2/login/LoginActivity.kt
+0
-1
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/o2/webview/JSInterfaceO2mUtil.kt
...m/mobile/v1/zoneXBPM/app/o2/webview/JSInterfaceO2mUtil.kt
+22
-1
o2android/app/src/main/res/menu/menu_location_open.xml
o2android/app/src/main/res/menu/menu_location_open.xml
+12
-0
o2android/app/src/main/res/mipmap-xhdpi/share.png
o2android/app/src/main/res/mipmap-xhdpi/share.png
+0
-0
o2android/app/src/main/res/values/strings.xml
o2android/app/src/main/res/values/strings.xml
+1
-0
未找到文件。
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/im/O2LocationActivity.kt
浏览文件 @
2ae76de5
package
net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.im
import
android.support.v7.app.AppCompatActivity
import
android.content.Intent
import
android.net.Uri
import
android.os.Bundle
import
android.os.Parcel
import
android.os.Parcelable
import
android.support.v7.widget.Toolbar
import
android.support.v4.content.ContextCompat
import
android.support.v7.app.AppCompatActivity
import
android.view.Menu
import
android.view.MenuItem
import
android.widget.TextView
import
com.baidu.location.BDLocation
import
com.baidu.location.BDLocationListener
import
com.baidu.location.LocationClient
...
...
@@ -21,7 +22,13 @@ import net.zoneland.x.bpm.mobile.v1.zoneXBPM.R
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XLog
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XToast
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.visible
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.BottomSheetMenu
import
org.jetbrains.anko.doAsync
import
kotlin.math.atan2
import
kotlin.math.cos
import
kotlin.math.sin
import
kotlin.math.sqrt
class
O2LocationActivity
:
AppCompatActivity
(),
BDLocationListener
{
...
...
@@ -123,6 +130,8 @@ class O2LocationActivity : AppCompatActivity(), BDLocationListener {
override
fun
onCreateOptionsMenu
(
menu
:
Menu
?):
Boolean
{
if
(
mode
==
0
)
{
menuInflater
.
inflate
(
R
.
menu
.
menu_location_send
,
menu
)
}
else
{
menuInflater
.
inflate
(
R
.
menu
.
menu_location_open
,
menu
)
}
return
super
.
onCreateOptionsMenu
(
menu
)
}
...
...
@@ -139,6 +148,17 @@ class O2LocationActivity : AppCompatActivity(), BDLocationListener {
}
return
true
}
R
.
id
.
location_open
->
{
BottomSheetMenu
(
this
@O2LocationActivity
).
setItems
(
arrayListOf
(
"百度地图"
,
"高德地图"
,
"腾讯地图"
),
ContextCompat
.
getColor
(
this
@O2LocationActivity
,
R
.
color
.
blue
)){
index
->
when
(
index
)
{
0
->
goToBaiduMap
()
1
->
goToGaodeMap
()
2
->
goToTencentMap
()
}
}.
show
()
}
}
return
super
.
onOptionsItemSelected
(
item
)
}
...
...
@@ -253,6 +273,77 @@ class O2LocationActivity : AppCompatActivity(), BDLocationListener {
mLocationClient
.
locOption
=
option
}
/**
* 跳转百度地图
*/
private
fun
goToBaiduMap
()
{
try
{
val
uri
=
Uri
.
parse
((
"baidumap://map/direction?destination=latlng:"
+
locationData
?.
latitude
.
toString
())
+
","
+
locationData
?.
longitude
.
toString
()
+
"|name:"
+
locationData
?.
address
+
// 终点
"&mode=driving"
+
// 导航路线方式
"&src="
+
packageName
)
val
intent
=
Intent
(
"android.intent.action.VIEW"
,
uri
)
startActivity
(
intent
)
}
catch
(
e
:
Exception
)
{
XToast
.
toastShort
(
this
,
"未安装百度地图,无法打开"
)
}
}
/**
* 跳转高德地图
*/
private
fun
goToGaodeMap
()
{
try
{
val
lat
=
LatLng
(
locationData
?.
latitude
!!
,
locationData
?.
longitude
!!
)
val
endPoint
=
BD2GCJ
(
lat
)
//坐标转换
// val stringBuffer = StringBuffer("androidamap://navi?sourceApplication=").append("O2OA")
// stringBuffer.append("&lat=").append(endPoint!!.latitude)
// .append("&lon=").append(endPoint.longitude).append("&keywords=${locationData?.address}")
// .append("&dev=").append(0)
// .append("&style=").append(2)
val
stringBuffer
=
StringBuffer
(
"androidamap://route/plan/?sourceApplication=O2OA&dlat="
)
stringBuffer
.
append
(
endPoint
!!
.
latitude
)
.
append
(
"&dlon="
).
append
(
endPoint
.
longitude
)
.
append
(
"&dname=${locationData?.address}"
)
.
append
(
"&dev=0&t=0"
)
val
intent
=
Intent
(
"android.intent.action.VIEW"
,
Uri
.
parse
(
stringBuffer
.
toString
()))
startActivity
(
intent
)
}
catch
(
e
:
Exception
)
{
XToast
.
toastShort
(
this
,
"未安装高德地图,无法打开"
)
}
}
/**
* 跳转腾讯地图
*/
private
fun
goToTencentMap
()
{
try
{
val
lat
=
LatLng
(
locationData
?.
latitude
!!
,
locationData
?.
longitude
!!
)
val
endPoint
=
BD2GCJ
(
lat
)
//坐标转换
val
stringBuffer
=
StringBuffer
(
"qqmap://map/routeplan?type=drive"
)
.
append
(
"&tocoord="
).
append
(
endPoint
!!
.
latitude
).
append
(
","
).
append
(
endPoint
.
longitude
).
append
(
"&to=${locationData?.address}"
)
val
intent
=
Intent
(
"android.intent.action.VIEW"
,
Uri
.
parse
(
stringBuffer
.
toString
()))
startActivity
(
intent
)
}
catch
(
e
:
Exception
)
{
XToast
.
toastShort
(
this
,
"未安装腾讯地图,无法打开"
)
}
}
/**
* BD-09 坐标转换成 GCJ-02 坐标
*/
private
fun
BD2GCJ
(
bd
:
LatLng
):
LatLng
?
{
val
x
=
bd
.
longitude
-
0.0065
val
y
=
bd
.
latitude
-
0.006
val
z
=
sqrt
(
x
*
x
+
y
*
y
)
-
0.00002
*
sin
(
y
*
Math
.
PI
)
val
theta
=
atan2
(
y
,
x
)
-
0.000003
*
cos
(
x
*
Math
.
PI
)
val
lng
=
z
*
cos
(
theta
)
//lng
val
lat
=
z
*
sin
(
theta
)
//lat
return
LatLng
(
lat
,
lng
)
}
/**
* 地址数据对象
...
...
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/o2/login/LoginActivity.kt
浏览文件 @
2ae76de5
...
...
@@ -32,7 +32,6 @@ import net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.BottomSheetMenu
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.CountDownButtonHelper
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.dialog.O2DialogSupport
import
java.io.IOException
import
kotlin.math.log
/**
...
...
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/o2/webview/JSInterfaceO2mUtil.kt
浏览文件 @
2ae76de5
...
...
@@ -15,9 +15,9 @@ import com.baidu.location.LocationClientOption
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.wugang.activityresult.library.ActivityResult
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BaseMVPActivity
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.bbs.view.BBSWebViewSubjectActivity
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.cms.view.CMSWebViewActivity
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.im.O2LocationActivity
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.vo.*
import
net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.AndroidUtils
...
...
@@ -70,6 +70,7 @@ class JSInterfaceO2mUtil private constructor(val activity: FragmentActivity?) {
"device.getPhoneInfo"
->
deviceGetPhoneInfo
(
message
!!
)
"device.scan"
->
deviceScan
(
message
!!
)
"device.location"
->
deviceGetLocation
(
message
!!
)
"device.openMap"
->
deviceOpenMap
(
message
!!
)
"navigation.setTitle"
->
navigationSetTitle
(
message
!!
)
"navigation.close"
->
navigationClose
(
message
!!
)
"navigation.goBack"
->
navigationGoBack
(
message
!!
)
...
...
@@ -462,6 +463,26 @@ class JSInterfaceO2mUtil private constructor(val activity: FragmentActivity?) {
private
fun
deviceOpenMap
(
message
:
String
)
{
val
type
=
object
:
TypeToken
<
O2JsPostMessage
<
O2LocationActivity
.
LocationData
>>()
{}.
type
val
value
:
O2JsPostMessage
<
O2LocationActivity
.
LocationData
>
=
gson
.
fromJson
(
message
,
type
)
val
callback
=
value
.
callback
val
data
=
value
.
data
if
(
activity
!=
null
&&
data
!=
null
)
{
val
bundle
=
O2LocationActivity
.
showLocation
(
data
)
activity
.
go
<
O2LocationActivity
>(
bundle
)
if
(!
TextUtils
.
isEmpty
(
callback
))
{
callbackJs
(
"$callback('{}')"
)
}
}
else
{
XLog
.
error
(
"activity不存在 deviceOpenMap 失败!!"
)
}
}
}
\ No newline at end of file
o2android/app/src/main/res/menu/menu_location_open.xml
0 → 100644
浏览文件 @
2ae76de5
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
tools:context=
".app.im.O2LocationActivity"
>
<item
android:id=
"@+id/location_open"
app:showAsAction=
"ifRoom"
android:icon=
"@mipmap/share"
android:title=
"@string/activity_location_open"
android:orderInCategory=
"900"
/>
</menu>
o2android/app/src/main/res/mipmap-xhdpi/share.png
0 → 100644
浏览文件 @
2ae76de5
807 字节
o2android/app/src/main/res/values/strings.xml
浏览文件 @
2ae76de5
...
...
@@ -218,6 +218,7 @@
<string
name=
"activity_im_audio_speak"
>
按住说话
</string>
<string
name=
"activity_im_audio_speak_cancel"
>
上滑取消发送
</string>
<string
name=
"activity_location_send"
>
发送
</string>
<string
name=
"activity_location_open"
>
打开
</string>
<string
name=
"menu_im_tribe_name_update"
>
修改群名
</string>
<string
name=
"menu_im_tribe_member_update"
>
修改成员
</string>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录