高德地图 Javascript web API 1.3根据输入的地址搜索位置的经纬度编码
2017-05-25 14:26
225 查看
这两种情况都要首先引入高德地图api的javascript
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=你申请的key"></script>
第一种情况根据输入的地点去手动搜索地图:
jsp页面
<title>地理定位</title>
</head>
<body class="easyui-layout" onload="initMap();">
<div data-options="region:'north' ,title:'',iconCls:'icon-tip'" style="height:34px">
<div id="r-result">
请输入待定位地址:<input type="text" id="suggestId" size="20" placeholder="请输需要查询的地址" style="width:150px;" />
<a href="javascript:void(0)" onclick="lacationOk();" class="easyui-linkbutton" iconCls="icon-search" plain="true">搜索</a>
<a href="javascript:void(0)" onclick="lacationClr();" class="easyui-linkbutton" iconCls="icon-cut" plain="true">清除</a>
<a href="javascript:void(0)" onclick="lacationRedo();" class="easyui-linkbutton" iconCls="icon-redo" plain="true">恢复</a>
</div>
</div>
<div data-options="region:'center',title:'',iconCls:'icon-tip',border:false">
<div id="container"></div>
<div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div>
</div>
</body>
javacript:
var map,marker;
var point;
var oldPoint;
var ac ;//建立一个自动完成的对象
var myValue;
var MGeocoder;
var suggestId;
function lacationOk() { //地理编码返回结果展示
if (marker) {
marker.setMap(null);
marker = null;
}
suggestId = document.getElementById("suggestId").value;
//alert(suggestId);
map.plugin(["AMap.Geocoder"], function() { //加载地理编码插件
MGeocoder = new AMap.Geocoder({
city:"", //城市,默认:“全国”
//radius:1000 //范围,默认:500
});
//地理编码
MGeocoder.getLocation(suggestId, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
//TODO:获得了有效经纬度,可以做一些展示工作
//比如在获得的经纬度上打上一个Marker
var lng = result.geocodes[0].location.lng; //获取经度
var lat = result.geocodes[0].location.lat; //获取纬度
marker = new AMap.Marker({
position: [lng,lat],
title: result.geocodes[0].formattedAddress,
map: map,
draggable:true,
raiseOnDrag:true,
});
//alert(JSON.stringify(result));
}else{
//获取经纬度失败
}
});
});
}
第二种情况就是根据用户在输入框输入的字自动完成的文本框
页面一样不一样的Javascript了
//创建地图函数:
function createMap(){
marker = new AMap.Marker();
map = new AMap.Map('container');
map.setZoom(7);
map.setCenter([113.264434, 23.129162]);
//建立一个自动完成的对象
map.plugin('AMap.Autocomplete',function(){//回调函数
var autoOptions = {
city: "", //城市,默认全国
input:"suggestId"//使用联想输入的input的id
};
var autocomplete= new AMap.Autocomplete(autoOptions);
AMap.event.addListener(autocomplete, "select", function(data){
var lng = data.poi.location.lng; //获取经度
var lat = data.poi.location.lat; //获取纬度
//搜索下一个之前把前一个标注给去掉
if(marker!=null&&marker!=''){
marker.setMap(null);
}
//重新自动标注
marker = new AMap.Marker({
position: [lng,lat],
title: data.poi.district+"["+data.poi.name+"]",
map: map,
draggable:true,
raiseOnDrag:true,
});
});
});
}
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=你申请的key"></script>
第一种情况根据输入的地点去手动搜索地图:
jsp页面
<title>地理定位</title>
</head>
<body class="easyui-layout" onload="initMap();">
<div data-options="region:'north' ,title:'',iconCls:'icon-tip'" style="height:34px">
<div id="r-result">
请输入待定位地址:<input type="text" id="suggestId" size="20" placeholder="请输需要查询的地址" style="width:150px;" />
<a href="javascript:void(0)" onclick="lacationOk();" class="easyui-linkbutton" iconCls="icon-search" plain="true">搜索</a>
<a href="javascript:void(0)" onclick="lacationClr();" class="easyui-linkbutton" iconCls="icon-cut" plain="true">清除</a>
<a href="javascript:void(0)" onclick="lacationRedo();" class="easyui-linkbutton" iconCls="icon-redo" plain="true">恢复</a>
</div>
</div>
<div data-options="region:'center',title:'',iconCls:'icon-tip',border:false">
<div id="container"></div>
<div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div>
</div>
</body>
javacript:
var map,marker;
var point;
var oldPoint;
var ac ;//建立一个自动完成的对象
var myValue;
var MGeocoder;
var suggestId;
function lacationOk() { //地理编码返回结果展示
if (marker) {
marker.setMap(null);
marker = null;
}
suggestId = document.getElementById("suggestId").value;
//alert(suggestId);
map.plugin(["AMap.Geocoder"], function() { //加载地理编码插件
MGeocoder = new AMap.Geocoder({
city:"", //城市,默认:“全国”
//radius:1000 //范围,默认:500
});
//地理编码
MGeocoder.getLocation(suggestId, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
//TODO:获得了有效经纬度,可以做一些展示工作
//比如在获得的经纬度上打上一个Marker
var lng = result.geocodes[0].location.lng; //获取经度
var lat = result.geocodes[0].location.lat; //获取纬度
marker = new AMap.Marker({
position: [lng,lat],
title: result.geocodes[0].formattedAddress,
map: map,
draggable:true,
raiseOnDrag:true,
});
//alert(JSON.stringify(result));
}else{
//获取经纬度失败
}
});
});
}
第二种情况就是根据用户在输入框输入的字自动完成的文本框
页面一样不一样的Javascript了
//创建地图函数:
function createMap(){
marker = new AMap.Marker();
map = new AMap.Map('container');
map.setZoom(7);
map.setCenter([113.264434, 23.129162]);
//建立一个自动完成的对象
map.plugin('AMap.Autocomplete',function(){//回调函数
var autoOptions = {
city: "", //城市,默认全国
input:"suggestId"//使用联想输入的input的id
};
var autocomplete= new AMap.Autocomplete(autoOptions);
AMap.event.addListener(autocomplete, "select", function(data){
var lng = data.poi.location.lng; //获取经度
var lat = data.poi.location.lat; //获取纬度
//搜索下一个之前把前一个标注给去掉
if(marker!=null&&marker!=''){
marker.setMap(null);
}
//重新自动标注
marker = new AMap.Marker({
position: [lng,lat],
title: data.poi.district+"["+data.poi.name+"]",
map: map,
draggable:true,
raiseOnDrag:true,
});
});
});
}
相关文章推荐
- Android高德地图输入地址利用正地理编码获取经纬度
- 高德地图根据地址批量获取经纬度
- iOS根据输入的位置获取经纬度
- iOS开发——定位获取经纬度坐标,并反编码获得地理位置信息(具体地址,国家、省、市等)
- iOS 高德地图 根据经纬度解析成位置
- 根据经纬度获得地址位置
- 根据经纬度获取地址 :位置名称 区 市 省 国家 邮编
- 百度地图API,获取地址的经纬度,根据坐标位置获取地理位置,,获取两个地理坐标的直线距离
- GMap.Net根据地址搜索,并双击获得经纬度((Winform)最新版本的代码))
- JavaScript地图手动输入起始与终点位置搜索
- 根据HTML5 获取当前位置的经纬度【百度地图】【高德地图】
- 【Java】 java调用百度地图API根据地理位置中文获取经纬度 地址备忘
- 百度地图 根据关键字搜索 并返回信息列表并根据选择位置信息得到经纬度
- 获取定位经纬度, 支持输入地址搜索先定位
- 地理编码(根据地址得出位置并且加上自定义的大头针)
- 高德地图-根据经纬度获取地址(逆地理编码)
- GMap.Net根据地址搜索,并双击获得经纬度((Winform)最新版本的代码)
- Android之根据经纬度查询位置地址名称
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- C#根据经纬度请求返回坐标实际地址