您好,欢迎来到优显汽车网。
搜索
您的当前位置:首页

利用百度地图实现地图网格的实例分享

2022-06-15 来源:优显汽车网
摘要
1、在位置共享页面,点击右上方[添加好友]按钮,选择想要共享位置的联系人,发送短信邀请后,对方将收到一条带有链接的短信,对方点击短信链接,并用百度地图打开后,即可实现位置共享。每次分享将发送一条短信,无其他任何信息费,短信费用由运营商收取2、您可以在位置共享页面对好友进行管理。

最近要使用百度地图实现楼盘可视化的功能,因此最基础的功能就是将地图网格化以后实现不同地域的楼盘划分;本文主要为大家分享一篇使用百度地图实现地图网格的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。

1,自行去百度地图的开放平台申请秘钥哈,这里我就把自己的秘钥贴出来了;ak=A3CklGvnFOjkAzKzay2dySgfdig0GKz4

2,新建一个简单页面,下面我把自己的页面贴出来

<!DOCTYPE html><html><head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0px; padding: 0px } #container { height: 100% } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=A3CklGvnFOjkAzKzay2dySgfdig0GKz4"></script> <script type="text/javascript" src="ziroom-map.js"></script> </head> <body> <p id="container"></p> <script> var myMap = new ZMap("container"); </script> </body> </html>

3,其中引入了ziroom-map.js,这是我们公司的名字啦,我把代码贴出来,这个js是封装了百度的js的api的,有人如果要问为什么封装,直接使用不可以么?那我的回答是:封装可以将具体业务和地图相结合,使代码更清晰,并且可以持久化当前地图的状态,利于实现对地图的操作。

var ZMap = function (id, center, level) { this.initCenter = new ZPoint(116.404, 39.915);//初始化的中心点,同时为了定义网格的中心点 this.id = id;//p的id this.level = level ? level : 13;//地图级别 this.center = center ? center : this.initCenter;//中心点 this.map = null;//百度地图实例 this.xgrids = [];//经线 this.ygrids = [];//纬线 this.beSelectBounds = {}; this.bounds = null;//当前地图的四个顶点 this.span = null;//当前网格的跨度 this.init();}ZMap.prototype = { init: function () {//全局初始化 var zMap = this; this.map = new BMap.Map(this.id); this.map.centerAndZoom(this.center.point, this.level); this.map.enableScrollWheelZoom(); this.map.disableInertialDragging(); this.map.addControl(new BMap.NavigationControl({ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, type: BMAP_NAVIGATION_CONTROL_ZOOM })); //缩放按钮 this.map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT, offset: new BMap.Size(80, 25)})); //比例尺 this.map.disableDoubleClickZoom(); this.map.setMapStyle({style: 'googlelite'}); this.initProperty(); this.initGrid(); //添加移动后的点击事件 this.map.addEventListener("dragend", function () { zMap.initProperty(); zMap.initGrid(); }); //添加放大或缩小时的事件 this.map.addEventListener("zoomend", function () { zMap.initProperty(); zMap.initGrid(); }); //设置点击事件 this.map.addEventListener("click", function (e) { var point = e.point; //获取当前点是在哪个区块内,获取正方形的四个顶点 var points = zMap.getGrid(point); //判断当前区域是否已经被选中过,如果被选中过则取消选中 var key = '' + points[0].lng + points[0].lat + points[2].lng + points[2].lat;//使用两个点的坐标作为key if (zMap.beSelectBounds[key]) { zMap.map.removeOverlay(zMap.beSelectBounds[key]); delete zMap.beSelectBounds[key]; return; } var polygon = new BMap.Polygon(points, {strokeColor: "red", strokeWeight: 2, strokeOpacity: 0.5}); zMap.map.addOverlay(polygon); zMap.beSelectBounds[key] = polygon; }); }, initProperty: function () {//初始化当前地图的状态 this.level = this.map.getZoom(); this.bounds = { x1: this.map.getBounds().getSouthWest().lng, y1: this.map.getBounds().getSouthWest().lat, x2: this.map.getBounds().getNorthEast().lng, y2: this.map.getBounds().getNorthEast().lat }; this.span = this.getSpan();//需要使用level属性 }, initGrid: function () {//初始化网格 var zMap = this; //将原来的网格线先去掉 for (var i in zMap.xgrids) { this.map.removeOverlay(zMap.xgrids[i]); } zMap.xgrids = []; for (var i in zMap.ygrids) { this.map.removeOverlay(zMap.ygrids[i]); } zMap.ygrids = []; //获取当前网格跨度 var span = zMap.span; //初始化地图上的网格 for (var i = zMap.bounds.x1 + (zMap.initCenter.point.lng - zMap.bounds.x1) % span.x - span.x; i < zMap.bounds.x2 + span.x; i += span.x) { var polyline = new BMap.Polyline([ new BMap.Point(i.toFixed(6), zMap.bounds.y1), new BMap.Point(i.toFixed(6), zMap.bounds.y2) ], {strokeColor: "black", strokeWeight: 1, strokeOpacity: 0.5}); zMap.xgrids.push(polyline); zMap.map.addOverlay(polyline); } for (var i = zMap.bounds.y1 + (zMap.initCenter.point.lat - zMap.bounds.y1) % span.y - span.y; i < zMap.bounds.y2 + span.y; i += span.y) { var polyline = new BMap.Polyline([ new BMap.Point(zMap.bounds.x1, i.toFixed(6)), new BMap.Point(zMap.bounds.x2, i.toFixed(6)) ], {strokeColor: "black", strokeWeight: 1, strokeOpacity: 0.5}); zMap.ygrids.push(polyline); zMap.map.addOverlay(polyline); } }, getSpan: function () {//获取网格的跨度 var scale = 0.75; var x = 0.00064; for (var i = this.level; i < 19; i++) { x *= 2; } var y = parseFloat((scale * x).toFixed(5)); return {x: x, y: y}; }, getGrid: function (point) {//返回当前点在所在区块的四个顶点 var zMap = this; //先找出两条纵线坐标 var xpoints = this.xgrids.map(function (polyline) { return polyline.getPath()[0].lng; }).filter(function (lng) { return Math.abs(lng - point.lng) <= zMap.span.x; }).sort(function (a, b) { return a - b; }).slice(0, 2); //再找出两条横线的坐标 var ypoints = this.ygrids.map(function (polyline) { return polyline.getPath()[0].lat; }).filter(function (lat) { return Math.abs(lat - point.lat) <= zMap.span.y; }).sort(function (a, b) { return a - b; }).slice(0, 2); return [ new BMap.Point(xpoints[0], ypoints[0]), new BMap.Point(xpoints[0], ypoints[1]), new BMap.Point(xpoints[1], ypoints[1]), new BMap.Point(xpoints[1], ypoints[0]) ]; }, reset: function () {//重置 this.map.reset(); }}var ZPoint = function (x, y, code) { this.code = code; this.point = new BMap.Point(x, y);}

小编还为您整理了以下内容,可能对您也有帮助:

百度地图如何与好友实现位置共享?

1、在位置共享页面,点击右上方[添加好友]按钮,选择想要共享位置的联系人,发送短信邀请后,对方将收到一条带有链接的短信,对方点击短信链接,并用百度地图打开后,即可实现位置共享。每次分享将发送一条短信,无其他任何信息费,短信费用由运营商收取
2、您可以在位置共享页面对好友进行管理。

百度地图如何与好友实现位置共享?

1、在位置共享页面,点击右上方[添加好友]按钮,选择想要共享位置的联系人,发送短信邀请后,对方将收到一条带有链接的短信,对方点击短信链接,并用百度地图打开后,即可实现位置共享。每次分享将发送一条短信,无其他任何信息费,短信费用由运营商收取
2、您可以在位置共享页面对好友进行管理。

地图者如何分享地图?

1. 使用地图应用的分享功能在几乎所有的地图应用中,都有分享地点或位置的功能。您可以先在地图上找到您想分享的位置,并进行缩放和调整,以便更加准确地定位到您想分享的位置。然后,点击地点标记或者该位置的具体信息,在弹出的信息窗中找到分享选项,在分享选项中选择相关的分享方式,如短信、邮件或者社交媒体等等,即可与其他人分享您所定位的地图信息。

2. 使用应用内截图或屏幕录制功能如果地图应用没有直接的分享功能或者分享功能不能满足您的需求,您也可以使用手机或电脑自带的截图或屏幕录制功能进行分享。在打开地图应用的情况下,您可以使用手机或电脑自带的截图或屏幕录制功能,截取或录制屏幕上您所定位的地图位置,并将截图或录制的文件保存下来发送给需要的人

在百度地图里怎么把自己的位置发给别人,或者说怎样分享位置

百度地图位置分享的步骤:

1、打开百度地图,会发现屏幕左下角有一个按钮,如图,点击进入。

2、点击后,手机屏幕下方会弹出一个对话框,然后点击右下角的“地址分享”。

3、点击“地址分享”后,出现分享方式的选择,选择自己的分享渠道,我们选择“微信好友。”

4、点击“微信好友”,就会进入你微信的通讯录名录页面,选择你要分享给的好友。

5、点击你的分享好友后,会自动弹出发送给窗口,你点击“分享”。

6、分享后,页面自动弹出窗口,提示你已经发送了自己的百度地图位置。

优显汽车网还为您提供以下相关内容希望对您有帮助:

百度地图里如何做一个地点2公里的范围圈。

1、百度搜索百度地图打开。2、打开右上角工具箱,使用标记工具标记中心店。3、标记中心点,点击退出的文本的保存按钮。4、在我的标记栏中点击“在附近找 ”按钮。5、输入需要的范围圈的大小“2公里”。6、出现范围圈,将...

百度地图如何分享位置

百度地图怎么分享位置第一步,选择地点。在准备分享的地点上长按,地图上会出现蓝色“倒水滴”符号(定位符);屏幕下方会出现一个信息框;第二步,点击信息框里右上角的“详情”,会打开新的详细信息框;第三步,点击右上角...

百度地图如何分享位置

第一步:首先,我们手机上要下载安装好最新版本的百度地图手机版,打开百度地图,我们点击我的这个按钮,如下图红色箭头所示。第二步:进入以下图所示界面后,我们点击图中的更多工具 第三步:看下图,选择位置共享这个选项。...

在百度地图里怎么把自己的位置发给别人,或者说怎样分享位置

1、打开百度地图,会发现屏幕左下角有一个按钮,如图,点击进入。2、点击后,手机屏幕下方会弹出一个对话框,然后点击右下角的“地址分享”。3、点击“地址分享”后,出现分享方式的选择,选择自己的分享渠道,我们选择“微...

百度地图怎么分享路线

如果别人分享了他们的百度地图路线给你,你可以按照以下步骤查看:在手机上或电脑上打开收到的路线链接或社交媒体平台链接;如果你使用的是百度地图应用程序,直接点击链接打开,地图会根据路线显示定位信息;如果你使用的是浏览器...

手机百度地图怎么把我的位置分享给别人? 10分

百度地图怎么分享自己的位置 当我们到了一个自己不熟悉的地方无法告诉好友,可以利用百度地图的位置定位功能,让好友随时检视到自己所在的位置。下面网侠我给大家带来利用百度地图手机定位功能操作流程:第一步:首先,我们手机上...

《百度地图》共享位置方法

希望对你有所帮助。百度地图怎么共享两个人的位置?1、打开百度地图,点击自己的位置图标,2、选择地点分享,点击要分享的APP,3、以微信为例,选中要分享的好友,4、点击发送,位置就分享成功了。

百度地图上怎么把我的位置分享给别人

1、打开百度地图,一会就可以看到你当前所有的位置了,点击右下角的“我的”快捷链接 2、在打开的界面中点击“更多工具”菜单 3、在打开的“更多工具”界面,点击“位置共享”菜单项 4、在打开的界面选择“共享位置”按钮 ...

百度地图怎么分享定位

只需点击分享按钮即可,这样就成功把自己的位置分享给朋友。百度地图怎么分享定位:1、打开百度地图。2、在地图上点击自己的位置。3、点击右上方“分享”按钮。4、选择需要分享到的软件。5、选择好友,点击发送即可。

如何把百度地图的行车路线分享到微信好友

1、打开手机百度地图软件;2、可以选择出行方式,例如公交、自驾、步行、自行车,并输入起点和终点,点击右上角“搜索”;3、在出现的路线图界面,点击右下角的“详情”;4、详情最下端右侧会显示“分享”;5、点击“分享”...

上一篇:JavaScript单击网页任意位置打开新窗口与关闭窗口的实现代码

下一篇:JS中offset和匀速动实例分析

Top