web开发如何使用百度地图API(一)判断点是否在范围内

准备工作

  • 注册开发者
  • 创建应用
  • 拿到百度地图ak

前端实现方案

引入百度地图API和工具类库

  <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
   <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>

显示地图的HTML

<body>
<div style="float:left;width:600px;height:500px;border:1px solid gray" id="container"></div>
<div style="float:left;width:300px;height:500px;border:1px solid gray" id="control">
    <table style="width:100%;">
        <tr>
            <td colspan="2">判断是否在区域内:</td>
        </tr>
        <tr>
            <td><input type="button" value="点击打开范围" onclick="polygon()" /></td>
        </tr>
        <tr>
            <td>经度<input type="text" value="" id="lng"></td>
        </tr>
        <tr>
            <td>纬度<input type="text" value="" id="lat"></td>
        </tr>
        <tr>
            <td>结果:</td>
        </tr>
        <tr>
            <td><p id="result" style="color:red"></p></td>
        </tr>
        </table>
</div>
</body>

生成多边形以及判断点击的点是否在范围内的JS

<script type="text/javascript">
    var map = new BMap.Map("container");
    var pt = new BMap.Point(116.404, 39.915);
    var mkr = new BMap.Marker(pt);
    var ply;  //多边形
    map.centerAndZoom(pt, 16);
    map.enableScrollWheelZoom(); //开启滚动缩放
    map.enableContinuousZoom(); //开启缩放平滑

    //初始化范围多边形
    polygon1();

    //生成多边形
    function polygon() {
        var pts = [];
        var pt1 = new BMap.Point(116.475, 40.017);
        var pt2 = new BMap.Point(116.355, 40.025);
        var pt3 = new BMap.Point(116.220, 39.994);
        var pt4 = new BMap.Point(116.208, 39.888);
        var pt5 = new BMap.Point(116.279, 39.780);
        var pt6 = new BMap.Point(116.398, 39.759);
        var pt7 = new BMap.Point(116.558, 39.846);
        var pt8 = new BMap.Point(116.549, 39.939);
        pts.push(pt1);
        pts.push(pt2);
        pts.push(pt3);
        pts.push(pt4);
        pts.push(pt5);
        pts.push(pt6);
        pts.push(pt7);
        pts.push(pt8);
        ply = new BMap.Polygon(pts);

        //演示:将面添加到地图上
        map.clearOverlays();
        map.addOverlay(ply);
    }

    map.addEventListener("click", function (e) {
        mkr.setPosition(e.point);
        map.addOverlay(mkr);
        //将点击的点的坐标显示在页面上
        document.getElementById("lng").value = e.point.lng;
        document.getElementById("lat").value = e.point.lat;

        InOrOutPolygon(e.point.lng, e.point.lat);
    });

    function InOrOutPolygon(lng, lat){
        var pt = new BMap.Point(lng, lat);
        var result = BMapLib.GeoUtils.isPointInPolygon(pt, ply);
        if (result == true) {
            document.getElementById("result").innerHTML = "在区域范围内";
        } else {
            document.getElementById("result").innerHTML = "在区域范围外";
        }
    }
</script>

原文地址:https://www.cnblogs.com/meng-ma-blogs/p/9318439.html

时间: 2024-11-04 12:54:51

web开发如何使用百度地图API(一)判断点是否在范围内的相关文章

深入浅出百度地图API开发系列(1):前言

百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能给想使用百度地图API的开发者带来一点帮助的话,那就太好了,也希望大家能够互相交流,共同学习. 写在前面的话:如果各位真的想深入了解地图的JSAPI,首先一些基础的GIS概念必不可少,GIS就是地理信息系统,可能很多程序猿没听过,简单地说,GIS就是通过计算机软件技术将地理信息进行可视化管理,地图就

C#微信开发之旅(七):根据经纬度获取地址(百度地图Api)

开发过程中遇到这样的需求,根据用户的地理位置不同,显示不同区域的产品. 这里用到了微信:获取用户地理位置 的功能,(每隔5秒上报 或 进入回话时上报一次),我们根据微信推送过来的经纬度,来转换成实际地址,这里用到的是百度地图Api(要用的话先申请百度ak). PS:微信的这个功能很不稳定,靠它不靠谱,经常不推送...(后来加了手动定位,百度地图Web定位组件 还不错,不是广告!0.0) #region 根据经纬度 获取地址信息 BaiduApi /// <summary> /// 根据经纬度

PictureShare开发(一)百度地图API

Android SDK v2.4.1 百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口. 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据, 构建功能丰富.交互性强的地图类应用程序. 百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制.您需申请密钥(key)后, 才可使用百度地图Android SDK.任何非营利性产品请直接使用,商业目的产品使用前请参考

基于MFC与第三方类CWebPage的百度地图API开发范例

在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地图坐标标注为范例讲解百度地图API开发 1.新建一个工厂MFC工程取名为GeoDemo 2.选择为基于对话框的工程 3.创建成功如下 4.简单调整页面布局 5.在界面插入一个浏览器控件 6.插入之后的效果 7.先运行一下看看 8.接下来我们写一个简单的html页面,代码大概如下 其中也包括一个jav

使用百度地图API进行Android地图应用开发(Eclipse)

随着基于位置的服务的兴起,地图类App呈现爆发趋势.随着而来的是地图供应商开放大量的API.供开发人员开发基于PC或者移动端的应用程序. 如今我们研究使用百度地图SDK进行Android项目的开发. 本文讨论怎样导入百度地图SDK. 主要分为server端配置和client配置. (1)首先要有一个百度账号,账号能够去百度官网申请,然后登陆:http://developer.baidu.com/map/index.php? title=%E9%A6%96%E9%A1%B5   .使用自己的账号p

android 基于百度地图api开发定位以及获取详细地址

一:百度地图开发必须要到百度开发平台android开发api下载相应的库,已经申请百度地图开发key. 二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView控件必须使用来自百度库封装好的com.baidu.mapapi.MapView .设计代码如下: Xml代码   <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&q

百度地图API开发一——仿照现有测距实现测量面积功能

  最近做了一个百度地图API的开发项目,里面有测量距离和测量面积的功能需求.测量距离百度给出了封装好的javascript包--BMapLib.DistanceTool,效果如下: 这个效果体验很好:测量面积也给出了开源javascript包--BMapLib.DrawingManger,如下: 但这个效果和体验就很差了.客户希望测量面积能实现和测距一样的效果体验(鼠标在移动绘制过程中实时显示绘制面积,且样式效果要一样),经过一番折腾,修改了百度测距的javascript包,终于搞定.先上效果

百度地图API

本文我将从如何使用地图API(本文以百度为例,谷歌类似)开始,往后的扩展行的内容详见后续文章.1.打开链接http://developer.baidu.com/map/jshome.htm  这里有很多DEMO,或者你直接百度搜索“百度地图API”,第一个就是.进入后有很多方向供你选择,由于现在开源的地图API都是JS脚本写的,所以我上面的链接就只针对JAVASCRIPT进行介绍.  即使是编程菜鸟(像我这种),也知道当你在任何一个开发环境下写代码时,都需要加入头文件,例如,你要在C++里使用c

百度地图API位置偏移的校准算法

转自极客人原文 百度地图API位置偏移的校准算法 在开始使用百度地图API进行开发时可能会遇到一件相当奇怪的事情,使用百度定位的经纬度在地图上显示相当不准确,这一问题我在微信开发和安卓开始时都遇到过.第一次使用百度地图api获取位置并在地图上显示是在微信开发的时候,那是不知道具体原因无奈在微信获取的地理位置上加了一个偏移量进行校准,虽能勉强解决,但是不太准确.后来在安卓开始也同样遇到了这个问题,才发现百度地图API定位偏移已经不是一个偶然问题了. 百度地图API定位偏移的原因 以下来自互联网: