记录:GoogleMap 谷歌地图经纬度转屏幕坐标z,y,偏移量

谷歌地图经纬度转坐标

注意: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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值