离线地图解决方案(八):地图地物查询

续上一篇,用户除有地物搜索(任意输入关键字,查询包含该关键字的地物)外,也有精确查询的需求,如查询指定经纬度周边一定范围内的地物,通过地图上框选矩形或者多边形,查询矩形或者多边形内的地物等。

范围查询:查询指定经纬度周边一定距离内的地物,效果如下图所示:

矩形框选查询:查询包含在指定矩形内的地物

多边形框选查询:在地图上绘制多边形,并查询包含在多边形内的地物

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        html, body {
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
            font-family: "微软雅黑";
        }
    </style>
 
    <script src="js/jquery-1.11.2.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="plugin/ol3/build/ol-debug.js"></script>
    <script type="text/javascript" src="js/Config.js"></script>
    <script type="text/javascript" src="js/PrivateFunction.js"></script>
 
</head>
<body>
    <div id="topHead" style=" height:65px; float:none;width:100%;border:0px solid gray">
        <table id="bjTable" style="height:100%;width:100%;">
            <tr>
                <td style="width:85px" align="right">圆心,经度:</td>
                <td style="width:100px"><input id="txtjd" /></td>
                <td style="width:60px" align="right">纬度:</td>
                <td style="width:100px"><input id="txtwd" /></td>
                <td style="width:60px" align="right">周围:</td>
                <td style="width:100px" align="right"><input style="width:75px;" id="txtZWjl"/>米</td>
                <td style="width:70px" align="right"><button style="width:65px" onclick="OpenCJ();">画圆</button></td>
                <td style="width:70px"><button style="width:65px" onclick="GetServerData()">搜索</button></td>
                <td style="width:60px" align="right">结果:</td>
                <td style="width:180px"><select id="resultList" style="width:200px"></select></td>
                <td></td>
            </tr>
        </table>
    </div>
    <div id="div_gis" style="float:none;width:100%;height:100%;border:0px solid gray">
 
    </div>
 
</body>
</html>
 
<script type="text/javascript">
    LoadGoogleTileMap(1, ‘div_gis‘, 1, 12, 8, 103.964571, 30.245677);
    CreateVectorLayer();
    OpenMap.on(‘click‘, function (evt) {
        var coordinate = evt.coordinate;
        txtjd.value = coordinate[0];
        txtwd.value = coordinate[1];
    });
    function GetServerData() {
        $.ajax({
            url: ‘http://localhost:8899/api/ReverseGEOApi/SearchPointBytype‘, //请求地址
            type: ‘Get‘,  //请求方式为post
            data: { ‘x‘: txtjd.value, ‘y‘: txtwd.value, ‘PointType‘: 1, ‘MiDis‘: txtZWjl.value, ‘pointCount‘: 5 }, //传入参数
            dataType: ‘json‘, //返回数据格式
            //请求成功完成后要执行的方法
            success: showRegCallBack,
            error: function (err) {
                alert("执行失败");
            }
        });
    }
    
    function showRegCallBack(data) {
        for (var i = 0; i < data.data.length; i++) {
            addPoint(data.data[i].PnameTemp, i + 1, data.data[i]NaN.X, data.data[i]NaN.Y);
        }
    }
 
    function addPoint(nameStr, id, xx, yy) {
        var pointStyle = CreatePointStyle(‘#ff0000‘, ‘10‘, ‘#ff0000‘, ‘2‘, nameStr, ‘center‘, ‘middle‘, ‘Arial‘, ‘14‘, ‘normal‘, ‘#aa3300‘, ‘#ffcc33‘, ‘2‘, ‘0‘, ‘15‘, ‘0‘);
        AddPointToLayer(tempDrawSoure, id, xx, yy, pointStyle);
    }
</script>
时间: 2024-10-12 04:07:13

离线地图解决方案(八):地图地物查询的相关文章

离线地图解决方案(十):最短路径规划

最短路径规划,采用开源数据库postgres.开源路径分析项目pgRouting进行. pgRouting是一个基于PostgreSQL/PostGIS的项目,目的是提供路径分析的功能. 基于postgres和pgrouting实现路径规划功能,大致分为以下几个步骤: 1.矢量路网数据导入 2.为矢量路网数据添加字段并构建拓扑关系 3.编写两点间路径规划函数 4.对外发布两点间路径规划接口 5.前端展示路径规划结果 Postgres和pgRouting的安装以及矢量数据的导入,请参看本博客相关文

离线地图解决方案

目前GIS系统的开发,大多采用Arcgis,superMap等专业的gis开发平台.部分项目采用当前主流的在线地图提供的api进行开发.Arcgis.supermap等专业厂商提供的开发平台,开发周期长,并且购买这些开发平台,成本相对很高.采用在线地图api进行项目开发,在部分不能上外网的单位项目没办法进行部署和使用.并且采用在线地图api进行开发,需要申请地图调用的所谓key.部分接口和api每天有调用次数限制. 大部分的GIS项目,其实只需要比较简单的GIS功能,如地图基本显示,在显示的地图

百度谷歌离线地图解决方案(离线地图下载)

离线地图解决方案,除了买地图数据,使用专业的ArcGIS来做外,也可以使用GMap.Net来做. 关于GMap的开发教程,可以看我以前的文章:基于GMap.Net的地图解决方案 使用了GMap一年了,也有了一些积累,开发了一个可以下载百度.谷歌.高德.腾讯SOSO的地图下载器,各个地图加载显示如下: 百度普通地图: 百度混合地图: 谷歌普通地图: 谷歌混合地图: 从目前的情况来看,百度的普通的地图数据是更新最快的,但是有些小地方没有卫星地图,而谷歌几乎所有的地方都有卫星地图,但是谷歌中国的地图更

离线地图解决方案(六):地图坐标“纠偏”

国内主流的在线地图服务和接口,应国家相关部门的要求,在发布地图是都进行了坐标偏移.现在web在线地图主要的坐标系有WGS84.GCJ-02.BD-09三种,WGS84原始坐标,未经过偏移,大部分GPS设备和矢量数据都采用这种坐标系.在线地图中google地图(国外)和天地图在线地图未经过偏移.GCJ-02坐标:高德.腾讯以及google国内在线地图采用这种坐标,BD-09是百度地图独有的坐标系,在GCJ-02基础上做了二次偏移. 在离线地图做加载瓦片数据后,如果要在这些"底图"上用坐标

离线地图解决方案(一):加载瓦片地图

当前主流的在线地图有百度.高德.天地图.腾讯地图.google地图等.针对局域网内网内脱离要脱离互联网访问的应用,需要下载这些主流厂商的瓦片数据.网上有很多地图下载器软件可以下载地图瓦片,可以通过各种方式获取到这些地图厂商的瓦片数据. 加载高德离线瓦片数据: 加载高德街道瓦片: 地图加载代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm

基于百度地图SDK和Elasticsearch GEO查询的地理围栏分析系统(1)

本文描述了一个系统,功能是评价和抽象地理围栏(Geo-fencing),以及监控和分析核心地理围栏中业务的表现. 技术栈:Spring-JQuery-百度地图WEB SDK 存储:Hive-Elasticsearch-MySQL-Redis 什么是地理围栏? LBS系统中,地理围栏指的是虚拟边界围成的部分. tips:这只是一个demo,支撑实习生的本科毕设,不代表生产环境,而且数据已经做了脱密处理,为了安全还是隐去了所有数据. 功能描述 1.地理围栏的圈选 (1)热力图 热力图展示的是,北京市

支持WEB、Android、IOS的地图解决方案

转自原文 支持WEB.Android.IOS的地图解决方案 工具链 GIS工具集 OpenGeo Suite 包含PostGIS, GeoServer, GeoWebCache, OpenLayers, 和 QGIS 地图准备 QGIS 导入.导出.编辑.shp,postgis,geotiff,geojson,dxf等多种GIS文件,给普通图片配准到地理坐标 教程:http://www.qgistutorials.com/en/ DraftSight 编辑CAD文件 SketchUp   从CA

Android studio 百度地图开发(5)查询周边服务(加油站)

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

iOS定位服务与地图开发(3)---地理信息编码查询

即根据一个NSString的文字描述对象获取相关的地理坐标. 采用CLGeocoder类操作,具体方法: 1>geocodeAddressDictionary:completionHandler: 通过指定一个地址信息字典对象参数进行查询 2>geocodeAddressString:completionHandler:通过指定一个地址信息字符串参数进行查询 3>geocodeAddressString:inRegion:completionHandler:通过制定地址信息字符串和查询范

百度地图、高德地图的数据从哪里得到的?[声明我只是此文章的搬运工,从百度知道复制来的]

要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集方法都是有大不同的. 要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念: 如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程. 对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容. 其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟: 矢量模型:同多X,Y(或者X,Y,Z