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\"> " + (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 = " 地址:" + address + "<br /> 电话:" + tel + " <br /> 类型:" + 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高德地图实现水波纹扩散"是一个技术实践项目,旨在展示如何在网页上利用高德地图API创建动态的水波纹效果,同时确保这种效果能够随着地图的缩放而自适应调整。这个Dome(演示示例)提供了一种创新的方式...
通过高德地图的Web API,我们可以方便地获取这些静态图片,为我们的Qt QML应用增添地图功能。 首先,我们需要了解Qt QML。Qt QML是Qt库的一部分,它提供了一种声明式语言用于构建用户界面。QML允许开发者用JSON格式...
本文将深入探讨如何在Web端利用高德地图API显示坐标点,并结合jQuery实现交互功能。 高德地图API是高德地图提供的一套JavaScript库,允许开发者在网页上嵌入地图并进行各种自定义操作,如标注、路径规划等。首先,...
在本文中,我们将深入探讨如何使用高德地图的Web服务进行路径规划,并通过ArcGIS JavaScript API(简称ArcGIS JS)将这些规划结果显示在天地图的底图上。这对于开发地理信息系统(GIS)应用,特别是在交通导航领域,...
通过深入研究这个【高德地图风场效果demo源代码】,开发者可以提升地图应用开发能力,掌握如何在地图上实现动态效果,并了解如何与其他地图服务集成。这对于气象应用、环境监测或任何需要地图显示实时信息的项目都是...
本项目聚焦于“高德地图API”的离线化处理,使其能适应多种平台,包括uniAPP、Web以及支持触屏操作的设备。离线化的意义在于,即使在没有网络连接的情况下,应用也能继续提供地图服务,这对于一些对实时性要求不高或...
虽然高德地图主要依赖其自身的API,而Leaflet则是一个通用的地图框架,但通过一些技巧和中间层代码,可以将它们结合在一起,比如使用Leaflet的图层管理功能来加载高德地图的瓦片。 为了在项目中使用这两个地图库,...
高德web端实现多边形电子围栏demo 地图上点三个点形成多边形区域,可以通过拉拽添加点的形式添加边的数量 可判断marker是否在多边形区域区域内(jQuery需要自己添加)
以上就是使用高德地图实现点聚合效果的基本步骤。通过这个功能,开发者可以更有效地展示海量地理数据,提升地图应用的用户体验。在实际开发中,你还可以结合其他API特性,如搜索、定位、轨迹等,构建出更多实用的...
在IT行业中,地图服务是移动应用和Web应用中不可或缺的一部分,尤其在导航、交通、旅游等领域。高德地图作为国内主流的地图服务提供商之一,提供了丰富的API和SDK供开发者使用,以便将地图功能集成到自己的应用中。...
在本文中,我们将深入探讨如何在C# WinForm应用程序中集成和使用高德地图API,以便为初学者提供一个清晰的指南。首先,确保你已安装Visual Studio 2010,因为这是开发环境的基础。 **一、创建WinForm项目** 1. ...
总结来说,Mapbox WMS是一个强大的工具,它允许开发者集成不同的地图服务,如天地图、高德地图和谷歌地图,到自己的Web应用程序中。通过基类封装,可以简化多地图服务的管理和维护。在实际操作中,理解WMS协议、选择...
3. **API密钥获取**:在使用高德地图API之前,开发者需要在高德地图开放平台注册账号,创建应用并获取API密钥。这个密钥用于验证调用API的身份,确保使用的是合法的请求。 4. **初始化地图**:引入API后,我们可以...
高德地图瓦片通常基于Web Mercator投影,这是一种广泛应用于在线地图的标准坐标系。 高德地图瓦片下载涉及到以下几个关键知识点: 1. **API接口**:高德地图提供了一套API接口,允许开发者获取地图瓦片数据。这些...
当我们需要在应用程序中调用外部应用,如地图应用,如百度地图或高德地图,Intent是实现这一功能的关键。本篇文章将深入讲解如何使用Intent在Android应用中跳转到这些地图应用,并在用户未安装相应地图应用时提供...
在本实例中,我们主要探讨如何使用jQuery与高德地图API进行交互,创建一个功能丰富的地图应用。这个应用允许用户通过输入搜索路径,利用右键拖拽来放大地图,以及用左键点击来测量路径。以下是对每个部分的详细解释...
标题“arcgis加载高德在线地图”指的是在ArcGIS环境中,利用编程接口(API)集成高德地图的服务,使得用户可以在ArcGIS应用程序中查看和操作高德地图的数据。高德地图是中国领先的数字地图提供商,提供了丰富的地理...
本示例“高德地图定位小demo”聚焦于使用高德地图API实现定位功能,下面将详细介绍高德地图定位服务的关键知识点,并结合描述中的“key别名test,密码123456”来探讨API的授权机制。 首先,高德地图是一款由阿里巴巴...
在Vue.js应用中,ElementUI是一个非常流行的前端组件库,提供了丰富的UI元素和交互设计,而高德地图则是一款强大的地图服务提供商,提供地图展示、定位、路线规划等功能。将ElementUI与高德地图结合,可以创建出具有...
"高德地图全套图标.zip"文件包含了一系列专为开发者设计的高德地图图标,旨在帮助他们在开发过程中集成高德地图功能时,保持与高德官方应用的一致性,提升用户界面的视觉效果。 这些图标可能包括但不限于:定位图标...