使用腾讯地图,百度和高德不在使用
This commit is contained in:
@@ -7,7 +7,7 @@ import (
|
||||
"crypto/md5"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/platformapi/autonavi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/tencent_map"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"math/rand"
|
||||
@@ -271,16 +271,32 @@ func EarthDistance(lng1, lat1, lng2, lat2 float64) float64 {
|
||||
return dist * radius
|
||||
}
|
||||
|
||||
// 返回结果单元为公里
|
||||
// WalkingDistance 返回结果单元为公里
|
||||
func WalkingDistance(lng1, lat1, lng2, lat2 float64) (distance float64) {
|
||||
if distance = api.AutonaviAPI.WalkingDistance(lng1, lat1, lng2, lat2); distance == 0 {
|
||||
param := &tencent_map.TencentCyclingPlanningReq{
|
||||
From: fmt.Sprintf("%.6f,%.6f", lat1, lng1),
|
||||
To: fmt.Sprintf("%.6f,%.6f", lat2, lng2),
|
||||
}
|
||||
distanceMetre, _ := api.TencentMapAPI.WalkingDistance(param)
|
||||
|
||||
if distanceMetre == 0 {
|
||||
distance = EarthDistance(lng1, lat1, lng2, lat2) * 1.4
|
||||
} else {
|
||||
distance /= 1000
|
||||
distance = float64(distanceMetre) / float64(1000)
|
||||
}
|
||||
return distance
|
||||
}
|
||||
|
||||
// 老版本百度
|
||||
//func WalkingDistance(lng1, lat1, lng2, lat2 float64) (distance float64) {
|
||||
// if distance = api.AutonaviAPI.WalkingDistance(lng1, lat1, lng2, lat2); distance == 0 {
|
||||
// distance = EarthDistance(lng1, lat1, lng2, lat2) * 1.4
|
||||
// } else {
|
||||
// distance /= 1000
|
||||
// }
|
||||
// return distance
|
||||
//}
|
||||
|
||||
//经纬度坐标转换到平面坐标
|
||||
func MillierConvertion(lat float64, lon float64) [2]float64 {
|
||||
var L, H, W, temp, mill, x, y float64
|
||||
@@ -312,22 +328,50 @@ func IntCoordinate2Standard(value int) float64 {
|
||||
func IntCoordinate2MarsStandard(gpsLng, gpsLat int, coordinateType int) (marsLng, marsLat float64, err error) {
|
||||
marsLng = IntCoordinate2Standard(gpsLng)
|
||||
marsLat = IntCoordinate2Standard(gpsLat)
|
||||
coordSys := ""
|
||||
coordSys := 0
|
||||
switch coordinateType {
|
||||
case model.CoordinateTypeGPS:
|
||||
coordSys = autonavi.CoordSysGPS
|
||||
coordSys = tencent_map.CoordinateChangeTypeGPS
|
||||
case model.CoordinateTypeMars:
|
||||
return marsLng, marsLat, nil
|
||||
case model.CoordinateTypeBaiDu:
|
||||
coordSys = autonavi.CoordSysBaidu
|
||||
coordSys = tencent_map.CoordinateChangeTypeBaidu
|
||||
case model.CoordinateTypeMapbar:
|
||||
coordSys = autonavi.CoordSysMapbar
|
||||
coordSys = tencent_map.CoordinateChangeTypeMapbar
|
||||
default:
|
||||
panic(fmt.Sprintf("known coordinate type:%d", coordinateType))
|
||||
}
|
||||
return api.AutonaviAPI.CoordinateConvert(marsLng, marsLat, coordSys)
|
||||
|
||||
result, err := api.TencentMapAPI.TencentCoordinateChange(&tencent_map.TencentCoordinateChangeReq{
|
||||
Locations: fmt.Sprintf("%.6f,%.6f", marsLat, marsLng),
|
||||
Type: coordSys,
|
||||
})
|
||||
if err != nil {
|
||||
return 0, 0, err
|
||||
}
|
||||
|
||||
return utils.Str2Float64(result[0].Lng), utils.Str2Float64(result[0].Lat), nil
|
||||
}
|
||||
|
||||
//func IntCoordinate2MarsStandard(gpsLng, gpsLat int, coordinateType int) (marsLng, marsLat float64, err error) {
|
||||
// marsLng = IntCoordinate2Standard(gpsLng)
|
||||
// marsLat = IntCoordinate2Standard(gpsLat)
|
||||
// coordSys := ""
|
||||
// switch coordinateType {
|
||||
// case model.CoordinateTypeGPS:
|
||||
// coordSys = autonavi.CoordSysGPS
|
||||
// case model.CoordinateTypeMars:
|
||||
// return marsLng, marsLat, nil
|
||||
// case model.CoordinateTypeBaiDu:
|
||||
// coordSys = autonavi.CoordSysBaidu
|
||||
// case model.CoordinateTypeMapbar:
|
||||
// coordSys = autonavi.CoordSysMapbar
|
||||
// default:
|
||||
// panic(fmt.Sprintf("known coordinate type:%d", coordinateType))
|
||||
// }
|
||||
// return api.TencentMapAPI.CoordinateConvert(marsLng, marsLat, coordSys)
|
||||
//}
|
||||
|
||||
func IntPrice2Standard(value int64) float64 {
|
||||
return float64(value) / 100
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user