gocoord

package module
v0.0.0-...-a0cd8c7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2021 License: Apache-2.0 Imports: 1 Imported by: 2

README

gocoord

wercker status

在BD09,GCJ02,WGS84坐标系之间相互转换点的坐标。

  • 高德地图、腾讯地图以及谷歌中国区地图使用的是GCJ-02坐标系;
  • 百度地图使用的是BD-09坐标系;
  • 底层接口(HTML5 Geolocation或iOS、安卓API)通过GPS设备获取的坐标使用的是WGS-84坐标系;

使用场景实例: 客户端或者远端的GPS设备上报GPS使用的WGS-84坐标系的点,从数据库中查找附近的点或者在百度地图或高德地图上显示某些点的位置。

可用方法

见文件gocoord_test.go

使用


go get github.com/suifengtec/gocoord

用例

源文件中导入并使用,下面是部分方法的使用示例:


package main

import (
	"fmt"
	"github.com/suifengtec/gocoord"
)

func main() {
	p := gocoord.Position{Lon: 113.739873, Lat: 34.356696}
	//gocoord.BD09ToGCJ02(p)
	// 谷歌地图显示为
	// 113.733355, 34.350604
	// 实际输出为gocoord.Position{Lon:113.73337197243862, Lat:34.350630274732744}
	fmt.Println("BD09转GCJ02")
	p2 := gocoord.BD09ToGCJ02(p)
	fmt.Printf("%#v\n", p2)

	//gocoord.BD09ToWGS84(p)
	// 实际输出为 gocoord.Position{Lon:113.7272281721665, Lat:34.351951705458674}
	fmt.Println("BD09转WGS84")
	p2 = gocoord.BD09ToWGS84(p)
	fmt.Printf("%#v\n", p2)

}


Documentation

Index

Constants

View Source
const AMap = GCJ02
View Source
const BD09 = "BD09"

BD09

View Source
const BD09LL = BD09
View Source
const BD09MC = "BD09MC"

BD09MC

View Source
const BD09Meter = BD09MC
View Source
const BMap = BD09
View Source
const Baidu = BD09
View Source
const EPSG102100 = EPSG3857
View Source
const EPSG3857 = "EPSG3857"

EPSG3857

View Source
const EPSG4326 = WGS84
View Source
const EPSG900913 = EPSG3857
View Source
const GCJ02 = "GCJ02"

GCJ02

View Source
const PI = math.Pi

PI ...

View Source
const WGS1984 = WGS84
View Source
const WGS84 = "WGS84"

WGS84

View Source
const WM = EPSG3857
View Source
const WebMercator = EPSG3857

Variables

View Source
var LL2MC = [][]float64{
	[]float64{
		-0.0015702102444,
		111320.7020616939,
		1704480524535203,
		-10338987376042340,
		26112667856603880,
		-35149669176653700,
		26595700718403920,
		-10725012454188240,
		1800819912950474,
		82.5,
	},
	[]float64{
		0.0008277824516172526,
		111320.7020463578,
		647795574.6671607,
		-4082003173.641316,
		10774905663.51142,
		-15171875531.51559,
		12053065338.62167,
		-5124939663.577472,
		913311935.9512032,
		67.5,
	},
	[]float64{
		0.00337398766765,
		111320.7020202162,
		4481351.045890365,
		-23393751.19931662,
		79682215.47186455,
		-115964993.2797253,
		97236711.15602145,
		-43661946.33752821,
		8477230.501135234,
		52.5,
	},
	[]float64{
		0.00220636496208,
		111320.7020209128,
		51751.86112841131,
		3796837.749470245,
		992013.7397791013,
		-1221952.21711287,
		1340652.697009075,
		-620943.6990984312,
		144416.9293806241,
		37.5,
	},
	[]float64{-0.0003441963504368392,
		111320.7020576856,
		278.2353980772752,
		2485758.690035394,
		6070.750963243378,
		54821.18345352118,
		9540.606633304236,
		-2710.55326746645,
		1405.483844121726,
		22.5,
	},
	[]float64{-0.0003218135878613132,
		111320.7020701615,
		0.00369383431289,
		823725.6402795718,
		0.46104986909093,
		2351.343141331292,
		1.58060784298199,
		8.77738589078284,
		0.37238884252424,
		7.45,
	},
}

LL2MC ...

View Source
var LLBAND = []float64{75.0, 60.0, 45.0, 30.0, 15.0, 0.0}

LLBAND ...

View Source
var MC2LL = [][]float64{
	[]float64{1.410526172116255e-8,
		0.00000898305509648872,
		-1.9939833816331,
		200.9824383106796,
		-187.2403703815547,
		91.6087516669843,
		-23.38765649603339,
		2.57121317296198,
		-0.03801003308653,
		17337981.2,
	},
	[]float64{
		-7.435856389565537e-9,
		0.000008983055097726239,
		-0.78625201886289,
		96.32687599759846,
		-1.85204757529826,
		-59.36935905485877,
		47.40033549296737,
		-16.50741931063887,
		2.28786674699375,
		10260144.86,
	},
	[]float64{
		-3.030883460898826e-8,
		0.00000898305509983578,
		0.30071316287616,
		59.74293618442277,
		7.357984074871,
		-25.38371002664745,
		13.45380521110908,
		-3.29883767235584,
		0.32710905363475,
		6856817.37,
	},
	[]float64{
		-1.981981304930552e-8,
		0.000008983055099779535,
		0.03278182852591,
		40.31678527705744,
		0.65659298677277,
		-4.44255534477492,
		0.85341911805263,
		0.12923347998204,
		-0.04625736007561,
		4482777.06,
	},
	[]float64{
		3.09191371068437e-9,
		0.000008983055096812155,
		0.00006995724062,
		23.10934304144901,
		-0.00023663490511,
		-0.6321817810242,
		-0.00663494467273,
		0.03430082397953,
		-0.00466043876332,
		2555164.4,
	},
	[]float64{
		2.890871144776878e-9,
		0.000008983055095805407,
		-3.068298e-8,
		7.47137025468032,
		-0.00000353937994,
		-0.02145144861037,
		-0.00001234426596,
		0.00010322952773,
		-0.00000323890364,
		826088.5,
	},
}

MC2LL ...

View Source
var MCBAND = []float64{
	12890594.86,
	8362377.87,
	5591021,
	3481989.83,
	1678043.12,
	0.0,
}

MCBAND ...

Functions

func IsInChina

func IsInChina(coord Position) bool

IsInChina GCJ02 标准下,是否在中国

Types

type Position

type Position struct {
	Lon float64
	Lat float64
}

Position struct

func BD09MCtoBD09

func BD09MCtoBD09(coord Position) Position

BD09MCtoBD09 ...

func BD09ToGCJ02

func BD09ToGCJ02(coord Position) Position

BD09ToGCJ02 ...

func BD09ToWGS84

func BD09ToWGS84(coord Position) Position

BD09ToWGS84 ...

func BD09toBD09MC

func BD09toBD09MC(coord Position) Position

BD09toBD09MC ...

func GCJ02ToBD09

func GCJ02ToBD09(coord Position) Position

GCJ02ToBD09 ...

func GCJ02ToWGS84

func GCJ02ToWGS84(coord Position) Position

GCJ02ToWGS84 ...

func WGS84ToBD09

func WGS84ToBD09(coord Position) Position

WGS84ToBD09 ...

func WGS84ToGCJ02

func WGS84ToGCJ02(coord Position) Position

WGS84ToGCJ02 ...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL