`
ahua186186
  • 浏览: 562053 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

web应用使用高德地图效果不错。

 
阅读更多
1.高德地图的API很详细,很容易自定义自己的地图。
<%@ page language="java" import="java.util.*"  contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib uri="/WEB-INF/paginator.tld" prefix="paginator"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
%>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>关键字搜索</title>
    <script language="javascript" src="http://webapi.amap.com/maps?v=1.2&key=22f12599eef8278633af34b22c66b2d0"></script>
    <link href="<%=path %>/css/fence.css" rel="stylesheet" type="text/css"/>
    <script language="javascript">

        var mapObj, toolbar, overview, scale, geo;
        var date, startTime;
        var initx = window.opener.document.getElementById("positionx").value;
        var inity = window.opener.document.getElementById("positiony").value;
        function mapInit() {
        //var opt="";
        //if(initx == ""){
        // opt = {
          //      level:13, //设置地图缩放级别
                //center:new AMap.LngLat(initx, inity), //设置地图中心点
          //      doubleClickZoom:true, //双击放大地图
          //      scrollWheel:true//鼠标滚轮缩放地图
            // }
        //}else{
        var opt = {
                level:13, //设置地图缩放级别
                //center:new AMap.LngLat(initx, inity), //设置地图中心点
                doubleClickZoom:false, //双击放大地图
                scrollWheel:true//鼠标滚轮缩放地图
            }
        //}
         
             var GeocoderOption = {
range: 3000, //范围
crossnum: 2, //道路交叉口数
roadnum: 3, //路线记录数
poinum: 2//POI点数
};

geo = new AMap.Geocoder(GeocoderOption);
            mapObj = new AMap.Map("iCenter", opt);AMap.Conf.network = 1;
            mapObj.plugin(["AMap.ToolBar", "AMap.OverView", "AMap.Scale"], function () {
                toolbar = new AMap.ToolBar();
                toolbar.autoPosition = true; //加载工具条
                mapObj.addControl(toolbar);
                overview = new AMap.OverView(); //加载鹰眼
                mapObj.addControl(overview);
                scale = new AMap.Scale(); //加载比例尺
                mapObj.addControl(scale);
            });

            AMap.event.addListener(mapObj,'complete',completeEventHandler);
           
        }
       
        function completeEventHandler() {
        toolbar.doLocation();
        listener1=AMap.event.addListener(mapObj,'dblclick',fn);
        //mapObj.zoomIn();
        }
        var fn = function(e){
        var lng = e.lnglat.getLng();
        var lat = e.lnglat.getLat();
        var lnglatXY = new AMap.LngLat(lng, lat)
geo.regeocode(lnglatXY, poiToAddressSearch_CallBack);
       
};
var data_temp="";
var  x_temp="";
var  y_temp="";
var address_temp;
function selectPoint2(x, y , i){
x_temp = x;
y_temp = y;
address_temp = data_temp.list[i].address;
//alert(address_temp);
var lnglatXY = new AMap.LngLat( x, y)
geo.regeocode(lnglatXY, poiToAddressSearch_CallBack2);
}
function poiToAddressSearch_CallBack2(data) {
var resultStr = "";
if (data.status == "E0") {
var province, city, district, road, address;
province = data.list[0].province.name;
if (province == "北京市") {
city = province;
}
else {
city = data.list[0].city.name;
}
district = data.list[0].district.name;
road = data.list[0].roadlist[0].name;
address = data.list[0].poilist[0].address;
if(address_temp ==""){
resultStr = province + city+ district + road + address;
}else{
resultStr = province + city+ district + address_temp;
}

//alert(x_temp + "---" + y_temp + "---" + address_temp);
selectPoint(x_temp,y_temp,resultStr);
}
}
function poiToAddressSearch_CallBack(data) {
var resultStr = "";
if (data.status == "E0") {
var province, city, district, road, address;
province = data.list[0].province.name;
if (province == "北京市") {
city = province;
}
else {
city = data.list[0].city.name;
}
district = data.list[0].district.name;
road = data.list[0].roadlist[0].name;
address = data.list[0].poilist[0].address;
resultStr = province + city+ district + road  + address;
//alert(resultStr + data.list[0].poilist[0].x +","+ data.list[0].poilist[0].y);
selectPoint(data.list[0].poilist[0].x,data.list[0].poilist[0].y,resultStr);
}
}
function selectPoint(x, y, address) {
if (address == "" || address == "undefined" || address == null || address == " undefined" || typeof address == "undefined") {
        alert("地址暂无,不能选择!");
    }
window.opener.document.getElementById("fenceAddr").value = address;
window.opener.document.getElementById("positionx").value = x;
window.opener.document.getElementById("positiony").value = y;
window.close();
//window.parent.submitSaveFence.fenceInfoVO.fenceAddr.value = address ;
}
        function keywordSearch() {
    mapObj.clearMap();
            var keywords = document.getElementById("keyword").value;
            var city = document.getElementById("city").value;
            var PoiSearchOption = {
                srctype:"POI", //数据来源
                type:"", //数据类别
                number:10, //每页数量,默认10
                batch:1, //请求页数,默认1
                range:3000, //查询范围,默认3000米
                ext:""//扩展字段
            };
            var MSearch = new AMap.PoiSearch(PoiSearchOption);
            MSearch.byKeywords(keywords, city, keywordSearch_CallBack);
xx++;
            date = new Date();
            startTime = date.getTime();
            //清空本次搜索的marker和windowsArr
            marker=[];
            windowsArr=[];
        }
        var resultCount = 10;
        var marker = new Array();
        var windowsArr = new Array();
var xx=0;
        function addmarker(i, d) {
            var markerOption = {
    map:mapObj,
                icon:"http://api.amap.com/webapi/static/Images/" + (i + 1) + ".png",
                position:new AMap.LngLat(d.x, d.y)
            };
            var mar = new AMap.Marker(markerOption);
         
            marker.push(new AMap.LngLat(d.x, d.y));
            var infoWindow = new AMap.InfoWindow
                    ({
                        content:"<h3><font color=\"#00a6ac\">&nbsp;&nbsp;" + (i + 1) + ". " + d.name + "</font></h3>" + TipContents(d.type, d.address, d.tel),
                        size:new AMap.Size(300, 0),
                        autoMove:true,  //设置自动调整信息窗口至视野范围
offset:new AMap.Pixel(0,-30)
                    });
            windowsArr.push(infoWindow);
          
            var aa = function (e) {
                infoWindow.open(mapObj, mar.getPosition());
            };
          
//AMap.event.addListener(mar, "click", aa);
        }
        function keywordSearch_CallBack(data) {
            var resultStr = "";
            data_temp=data;
            //showTime();
//document.getElementById("textUniqId").value = data.uniqid;
            if (data.status == "E0") {
                resultCount = data.list.length;
                for (var i = 0; i < data.list.length; i++) {
                //alert(data.list[i].x+"--"+data.list[i].y+"***");
                    resultStr += "<div id='divid" + (i + 1) + "' onmouseover='openMarkerTipById1(" + i + ",this)' onmouseout='onmouseout_MarkerStyle(" + (i + 1) + ",this)' style=\"font-size: 12px;cursor:pointer;padding:0px 0 4px 2px; border-bottom:1px solid #C1FFC1;\">" +
                    "<table><tr><td><button onclick='javascript:selectPoint2("+data.list[i].x+","+data.list[i].y+","+i+");'>选择</button></td><td><img src=\"http://api.amap.com/webapi/static/Images/" + (i + 1) + ".png\"></td>"
                    + "<td><h3><font color=\"#00a6ac\">名称: " + data.list[i].name + "</font></h3>";
                    resultStr += TipContents(data.list[i].type, data.list[i].address, data.list[i].tel) + "</td></tr></table></div>";
                    addmarker(i, data.list[i]);
                }
                mapObj.setFitView();
            }
            else if (data.status == "E1") {
                resultStr = "未查找到任何结果!<br />建议:<br />1.请确保所有字词拼写正确。<br />2.尝试不同的关键字。<br />3.尝试更宽泛的关键字。";
            }
            else {
                resultStr = "错误信息:" + data.state + "请对照API Server v2.0.0 简明提示码对照表查找错误类型";
            }
            document.getElementById("result").innerHTML = resultStr;
        }
        function TipContents(type, address, tel) {
            if (type == "" || type == "undefined" || type == null || type == " undefined" || typeof type == "undefined") {
                type = "暂无";
            }
            if (address == "" || address == "undefined" || address == null || address == " undefined" || typeof address == "undefined") {
                address = "暂无";
            }
            if (tel == "" || tel == "undefined" || tel == null || tel == " undefined" || typeof address == "tel") {
                tel = "暂无";
            }
            var str = "&nbsp;&nbsp;地址:" + address + "<br />&nbsp;&nbsp;电话:" + tel + " <br />&nbsp;&nbsp;类型:" + type;
            return str;
        }
        function openMarkerTipById1(pointid, thiss) {  //根据id 打开搜索结果点tip
            thiss.style.background = '#CAE1FF';
            windowsArr[pointid].open(mapObj, marker[pointid]);
        }
        function onmouseout_MarkerStyle(pointid, thiss) { //鼠标移开后点样式恢复
            thiss.style.background = "";
        }

        function showTime(){
            var date = new Date();
            document.getElementById("textSearchTime").value = date.getTime() - startTime + "毫秒";
        }

    </script>
</head>
<body onload="mapInit();" >
   <div class="addressMain">
<div class="left" >
<div class="searcherLayer">
   <b>城市:</b>
           <input type="text" id="city" name="city" value=""/>
           <b>关键字:</b>
           <input type="text" id="keyword" name="keyword" value=""/>
           <input type="button" value="查询" onclick="keywordSearch()" style="margin-left:5px"/>
</div>
    <div id="iCenter" style="width:679px;height:400px;border:#F6F6F6 solid 1px;"></div>
    </div>
    <div class="right" >
    <div id="r_title">关键字搜索结果:</div>
        <div id="result"></div>
    </div>
   </div>
</body>
</html>
分享到:
评论

相关推荐

    WEB高德地图实现水波纹扩散

    【标题】"WEB高德地图实现水波纹扩散"是一个技术实践项目,旨在展示如何在网页上利用高德地图API创建动态的水波纹效果,同时确保这种效果能够随着地图的缩放而自适应调整。这个Dome(演示示例)提供了一种创新的方式...

    qt qml使用高德地图的WebAPI获取静态地图

    通过高德地图的Web API,我们可以方便地获取这些静态图片,为我们的Qt QML应用增添地图功能。 首先,我们需要了解Qt QML。Qt QML是Qt库的一部分,它提供了一种声明式语言用于构建用户界面。QML允许开发者用JSON格式...

    web端高德地图显示坐标点

    本文将深入探讨如何在Web端利用高德地图API显示坐标点,并结合jQuery实现交互功能。 高德地图API是高德地图提供的一套JavaScript库,允许开发者在网页上嵌入地图并进行各种自定义操作,如标注、路径规划等。首先,...

    使用高德地图Web服务-路径规划,用ArcGIS JS显示数据在天地图底图上

    在本文中,我们将深入探讨如何使用高德地图的Web服务进行路径规划,并通过ArcGIS JavaScript API(简称ArcGIS JS)将这些规划结果显示在天地图的底图上。这对于开发地理信息系统(GIS)应用,特别是在交通导航领域,...

    高德地图风场效果demo源代码

    通过深入研究这个【高德地图风场效果demo源代码】,开发者可以提升地图应用开发能力,掌握如何在地图上实现动态效果,并了解如何与其他地图服务集成。这对于气象应用、环境监测或任何需要地图显示实时信息的项目都是...

    高德地图api离线化,支持uniapp,web,触屏操作

    本项目聚焦于“高德地图API”的离线化处理,使其能适应多种平台,包括uniAPP、Web以及支持触屏操作的设备。离线化的意义在于,即使在没有网络连接的情况下,应用也能继续提供地图服务,这对于一些对实时性要求不高或...

    项目中需要用到的高德地图和leaflet地图

    虽然高德地图主要依赖其自身的API,而Leaflet则是一个通用的地图框架,但通过一些技巧和中间层代码,可以将它们结合在一起,比如使用Leaflet的图层管理功能来加载高德地图的瓦片。 为了在项目中使用这两个地图库,...

    高德地图web多边形电子围栏demo

    高德web端实现多边形电子围栏demo 地图上点三个点形成多边形区域,可以通过拉拽添加点的形式添加边的数量 可判断marker是否在多边形区域区域内(jQuery需要自己添加)

    高德地图点聚合效果

    以上就是使用高德地图实现点聚合效果的基本步骤。通过这个功能,开发者可以更有效地展示海量地理数据,提升地图应用的用户体验。在实际开发中,你还可以结合其他API特性,如搜索、定位、轨迹等,构建出更多实用的...

    gmap中添加高德地图(标准,卫星,和混合路网地图)

    在IT行业中,地图服务是移动应用和Web应用中不可或缺的一部分,尤其在导航、交通、旅游等领域。高德地图作为国内主流的地图服务提供商之一,提供了丰富的API和SDK供开发者使用,以便将地图功能集成到自己的应用中。...

    winform加载高德地图

    在本文中,我们将深入探讨如何在C# WinForm应用程序中集成和使用高德地图API,以便为初学者提供一个清晰的指南。首先,确保你已安装Visual Studio 2010,因为这是开发环境的基础。 **一、创建WinForm项目** 1. ...

    mapboxwms天地图,高德地图,谷歌地图

    总结来说,Mapbox WMS是一个强大的工具,它允许开发者集成不同的地图服务,如天地图、高德地图和谷歌地图,到自己的Web应用程序中。通过基类封装,可以简化多地图服务的管理和维护。在实际操作中,理解WMS协议、选择...

    html引入高德地图demo

    3. **API密钥获取**:在使用高德地图API之前,开发者需要在高德地图开放平台注册账号,创建应用并获取API密钥。这个密钥用于验证调用API的身份,确保使用的是合法的请求。 4. **初始化地图**:引入API后,我们可以...

    高德地图瓦片下载,只针对高德

    高德地图瓦片通常基于Web Mercator投影,这是一种广泛应用于在线地图的标准坐标系。 高德地图瓦片下载涉及到以下几个关键知识点: 1. **API接口**:高德地图提供了一套API接口,允许开发者获取地图瓦片数据。这些...

    Android通过Intent跳转地图应用(百度地图、高德地图)

    当我们需要在应用程序中调用外部应用,如地图应用,如百度地图或高德地图,Intent是实现这一功能的关键。本篇文章将深入讲解如何使用Intent在Android应用中跳转到这些地图应用,并在用户未安装相应地图应用时提供...

    jQuery高德地图api开发实例代码

    在本实例中,我们主要探讨如何使用jQuery与高德地图API进行交互,创建一个功能丰富的地图应用。这个应用允许用户通过输入搜索路径,利用右键拖拽来放大地图,以及用左键点击来测量路径。以下是对每个部分的详细解释...

    arcgis加载高德在线地图

    标题“arcgis加载高德在线地图”指的是在ArcGIS环境中,利用编程接口(API)集成高德地图的服务,使得用户可以在ArcGIS应用程序中查看和操作高德地图的数据。高德地图是中国领先的数字地图提供商,提供了丰富的地理...

    高德地图定位小demo

    本示例“高德地图定位小demo”聚焦于使用高德地图API实现定位功能,下面将详细介绍高德地图定位服务的关键知识点,并结合描述中的“key别名test,密码123456”来探讨API的授权机制。 首先,高德地图是一款由阿里巴巴...

    vue使用elementui结合高德地图的定位以及位置显示

    在Vue.js应用中,ElementUI是一个非常流行的前端组件库,提供了丰富的UI元素和交互设计,而高德地图则是一款强大的地图服务提供商,提供地图展示、定位、路线规划等功能。将ElementUI与高德地图结合,可以创建出具有...

    高德地图全套图标.zip

    "高德地图全套图标.zip"文件包含了一系列专为开发者设计的高德地图图标,旨在帮助他们在开发过程中集成高德地图功能时,保持与高德官方应用的一致性,提升用户界面的视觉效果。 这些图标可能包括但不限于:定位图标...

Global site tag (gtag.js) - Google Analytics