谷歌地图经纬度转坐标
注意:latLng为事件函数触发得到的event对象
转换:普通坐标根据new window.google.maps.LatLng(lat, lng)实现转换
第一种方式(优先使用)
let mapOverlay = new window.google.maps.OverlayView()
mapOverlay.setMap(this.maps)
let p = mapOverlay.getProjection().fromLatLngToContainerPixel(latLng)
let x = p.x
let y = p.y
第二种方式
1、函数:
LatLng2Pixel (latLng) { // 经纬度转屏幕坐标xy
let scale = Math.pow(2, this.maps.getZoom())
let proj = this.maps.getProjection()
let bounds = this.maps.getBounds()
let nw = proj.fromLatLngToPoint(new window.google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getSouthWest().lng()))
let point = proj.fromLatLngToPoint(latLng)
return new window.google.maps.Point((point.x - nw.x) * scale, (point.y - nw.y) * scale)
}
2、触发取值:
let pixel = this.LatLng2Pixel(new window.google.maps.LatLng(lat, lng))
x = pixel.x
y = pixel.y
注意:
这种方式在谷歌地图0-4级会出现坐标转换到当前屏幕之外的问题(即:多一个屏幕尺寸的px或者少一个屏幕尺寸的px)