167 lines
6.3 KiB
HTML
167 lines
6.3 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en">
|
|||
|
<head>
|
|||
|
<meta charset="UTF-8">
|
|||
|
<title>地图</title>
|
|||
|
<script type="text/javascript" src="__COMMON__/jquery-3.4.1.min.js"></script>
|
|||
|
<link rel="stylesheet" href="__MANAGER__/layui/css/layui.css">
|
|||
|
<script type="text/javascript" src="__MANAGER__/layui/layui.all.js"></script>
|
|||
|
<!--高德地图js引入-->
|
|||
|
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.14&key=68b7bd8022d63972a2a31b5d6a3c69b6"></script>
|
|||
|
<style>
|
|||
|
#iMap {
|
|||
|
height: 450px;
|
|||
|
width: 100%;
|
|||
|
clear: both;
|
|||
|
}
|
|||
|
.info {
|
|||
|
|
|||
|
margin: 0 0 0 10px;
|
|||
|
}
|
|||
|
label {
|
|||
|
width: 80px;
|
|||
|
float: left;
|
|||
|
}
|
|||
|
.detail {
|
|||
|
padding: 10px;
|
|||
|
border: 1px solid #aaccaa;
|
|||
|
}
|
|||
|
</style>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div class="info">
|
|||
|
<p>说明:</p>
|
|||
|
<p>1、鼠标滚轮可以缩放地图,拖动地图。</p>
|
|||
|
<p>2、点击地图,即可获得GCJ-02的经纬度坐标,即火星坐标。</p>
|
|||
|
</div>
|
|||
|
<div class="layui-card layui-col-md12">
|
|||
|
<div class="layui-card-body layui-form" style="overflow: auto;">
|
|||
|
<div class="layui-form-item">
|
|||
|
<div class="layui-input-inline">
|
|||
|
<input type="text" class="layui-input" id="keyword" placeholder="请输入地名" value=""/>
|
|||
|
</div>
|
|||
|
<div class="layui-input-inline">
|
|||
|
<button type="button" class="layui-btn layui-btn-normal" id="search">搜索</button>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div id="iMap"></div>
|
|||
|
<script language="javascript">
|
|||
|
layui.use(["layer"],function () {
|
|||
|
var layer =layui.layer;
|
|||
|
$(function () {
|
|||
|
var mapObj;
|
|||
|
var lnglatXY;
|
|||
|
//初始化地图
|
|||
|
function mapInit() {
|
|||
|
let lng = {:empty($lng)?"104.072356":$lng};
|
|||
|
let lat = {:empty($lat)?"30.662162":$lat};
|
|||
|
var opt = {
|
|||
|
level: 14, //设置地图缩放级别
|
|||
|
center: new AMap.LngLat(lng,lat) //设置地图中心点
|
|||
|
}
|
|||
|
mapObj = new AMap.Map("iMap", opt);
|
|||
|
AMap.event.addListener(mapObj, 'click', getLnglat); //点击事件
|
|||
|
|
|||
|
let lnglatXY = new AMap.LngLat(lng, lat);
|
|||
|
|
|||
|
// 创建一个 Marker 实例:
|
|||
|
var marker = new AMap.Marker({
|
|||
|
position: lnglatXY, // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
|
|||
|
});
|
|||
|
// 将创建的点标记添加到已有的地图实例:
|
|||
|
mapObj.add(marker);
|
|||
|
}
|
|||
|
mapInit();
|
|||
|
function geocoder() {
|
|||
|
var MGeocoder;
|
|||
|
//加载地理编码插件
|
|||
|
mapObj.plugin(['AMap.ToolBar','AMap.Scale','AMap.OverView','AMap.MapType','AMap.Geolocation'],
|
|||
|
function(){
|
|||
|
mapObj.addControl(new AMap.ToolBar());
|
|||
|
|
|||
|
|
|||
|
mapObj.addControl(new AMap.Scale());
|
|||
|
|
|||
|
|
|||
|
mapObj.addControl(new AMap.OverView({isOpen:true}));
|
|||
|
mapObj.addControl(new AMap.MapType());
|
|||
|
mapObj.addControl(new AMap.Geolocation());
|
|||
|
});
|
|||
|
mapObj.plugin(["AMap.Geocoder"], function () {
|
|||
|
MGeocoder = new AMap.Geocoder({
|
|||
|
radius: 1000,
|
|||
|
extensions: "all"
|
|||
|
});
|
|||
|
//返回地理编码结果
|
|||
|
AMap.event.addListener(MGeocoder, "complete");
|
|||
|
//逆地理编码
|
|||
|
MGeocoder.getAddress(lnglatXY);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
//鼠标点击,获取经纬度坐标
|
|||
|
function getLnglat(e) {
|
|||
|
mapObj.clearMap();
|
|||
|
let lng = e.lnglat.getLng();
|
|||
|
let lat = e.lnglat.getLat();
|
|||
|
parent.setLngLat(lng,lat);
|
|||
|
|
|||
|
let lnglatXY = new AMap.LngLat(lng, lat);
|
|||
|
geocoder();
|
|||
|
|
|||
|
// 创建一个 Marker 实例:
|
|||
|
var marker = new AMap.Marker({
|
|||
|
position: lnglatXY, // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
|
|||
|
});
|
|||
|
// 将创建的点标记添加到已有的地图实例:
|
|||
|
mapObj.add(marker);
|
|||
|
}
|
|||
|
//搜索
|
|||
|
$("#search").on("click",function () {
|
|||
|
$.ajax({
|
|||
|
url: "https://restapi.amap.com/v3/geocode/geo?parameters",
|
|||
|
data: {
|
|||
|
"key":"68b7bd8022d63972a2a31b5d6a3c69b6",
|
|||
|
"address":$("#keyword").val(),
|
|||
|
},
|
|||
|
|
|||
|
type: 'get',
|
|||
|
dataType: 'json',
|
|||
|
timeout: 10000,
|
|||
|
success: function(data){
|
|||
|
if(data.status==1&&data.count>0){
|
|||
|
let geo = data.geocodes[0].location.split(",");
|
|||
|
let lng = geo[0];
|
|||
|
let lat = geo[1];
|
|||
|
//设置中心点
|
|||
|
mapObj.setZoomAndCenter(14, [lng,lat ]);
|
|||
|
|
|||
|
// 创建一个 Marker 实例:
|
|||
|
let lnglatXY = new AMap.LngLat(lng, lat);
|
|||
|
var marker = new AMap.Marker({
|
|||
|
position: lnglatXY, // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
|
|||
|
});
|
|||
|
// 将创建的点标记添加到已有的地图实例:
|
|||
|
mapObj.add(marker);
|
|||
|
|
|||
|
parent.setLngLat(lng,lat);
|
|||
|
}else{
|
|||
|
layer.msg("没有搜索结果");
|
|||
|
}
|
|||
|
},
|
|||
|
error:function(xhr,type,errorThrown){
|
|||
|
layer.msg('操作失败!', {time: 1500});
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
</script>
|
|||
|
</body>
|
|||
|
</html>
|