经纬度坐标转换成px_经纬度坐标转像素坐标

"```\n// 经纬度坐标转像素坐标\nfunction latlng2px(lat, lng) {\n var LatLng = (function(){\n function LatLng(lat, lng){\n this.lat = lat;\n this.lng = lng;\n }\n return LatLng;\n })();\n var Point = (function(){\n function Point(x, y){\n this.x = x;\n this.y = y;\n }\n return Point;\n })();\n var pointToLineDis = function(ps, pe, p){\n var a = pe.lat - ps.lat;\n var b = ps.lng - pe.lng;\n var c = pe.lng * ps.lat - ps.lng * pe.lat;\n var dis = (a * p.lng + b * p.lat + c) / Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));\n return dis;\n };\n var lineDis = function(p1, p2){\n return Math.sqrt(Math.pow(p1.lat - p2.lat, 2) + Math.pow(p1.lng - p2.lng, 2))\n };\n var p = new LatLng(25.084816, 102.933879); // 左下\n var pl = new LatLng(25.102940, 102.911459); // 左上\n var pr = new LatLng(25.115624, 102.960745); // 右下\n var getScreenPoint = function(latLngPoint){\n var lineLeft = lineDis(pl, p);\n var lineRight = lineDis(p, pr);\n var leftDis = pointToLineDis(p, pl, latLngPoint);\n var rightDis = pointToLineDis(pr, p, latLngPoint);\n var leftPercent = rightDis / lineLeft;\n var rightPercent = leftDis / lineRight;\n var x = (1920) * rightPercent; // 1920:div容器的宽度\n var y = (964) * (1 - leftPercent); // 964:div容器的高度\n return new Point(x, y);\n };\n var latlng = new LatLng(lat, lng);\n return getScreenPoint(latlng);\n}\n```\n\n调用\n\n```\nlatlng2px(25.102940, 102.911459); // {x: 4.5365515139625126e-7, y: 0.6712974463173231}\n```"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值