百度地图搜索问题

baobao28 2011-02-25 02:03:26
此代码为引用百度地图搜索名称显示功能
可以通过如下代码实现搜索功能,可以在地图上显示出标点,可以在下面列表中显示出内容
但是,我想得到上面所有显示标点的经纬度集合,不知道用何种办法

<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>本地搜索配置</title>
<script type="text/javascript"
src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.1&services=true">

</script>
</head>
<body onload="load()">
<%
String scname = request.getParameter("scname");

if (scname == null) {
scname = "";
} else {
scname = new String(scname.getBytes("iso-8859-1"), "gbk");
}
%>
<form action="#"><input type="text" name="scname"
value="<%=scname%>" id="scname" /><input type="submit" value="提交" /></form>
<div style="width: 800px; height: 400px; border: 1px solid gray"
id="container"></div>
<div id="results"
style="width: 800px; height: 100px; font-size: 13px; margin-top: 10px;"></div>
</body>

<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(123.432791, 41.808645), 12);

function load() {
var scname = document.forms[0].scname.value;

if (scname != null && scname.length > 0) {
var local = new BMap.LocalSearch("沈阳市", {
renderOptions : {
map : map,
panel : "results",
autoViewport : true,
selectFirstResult : false
}
});

local.search(scname);
}
}
</script>
</html>
...全文
1292 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmxdy 2013-11-11
  • 打赏
  • 举报
回复
引用 26 楼 l_h_y123 的回复:
String urls = "http://maps.google.com/maps/api/geocode/xml?latlng="+ly+","+lx+"&sensor=false"; URL url = new URL(urls); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); String s = ""; StringBuffer sb=new StringBuffer(); br.readLine(); while((s = br.readLine())!=null){ sb.append(s+"\r\n"); } br.close(); 不知道这段代码对你有用吗?你只需要把经纬度坐标传进去就得到相关的地理信息了,so easy
你这个是知道经纬度来获取地理信息,楼主要的是得到搜索结果的所有对应经纬度,期待楼主找到办法
zhulinyang 2011-06-23
  • 打赏
  • 举报
回复
围观。。。
muyipan 2011-03-07
  • 打赏
  • 举报
回复
楼主代码完成了没 可以公布了吗? 我很期待,我们也在做这块!
李鸿远 2011-03-01
  • 打赏
  • 举报
回复
功能实现了不就ok了,反正接口是免费的,天知地知你知我知嘛 哈哈
baobao28 2011-03-01
  • 打赏
  • 举报
回复
谢谢楼上的了,领导让用的是百度地图
baobao28 2011-02-28
  • 打赏
  • 举报
回复
难道真的因为这么一个应用让我转成google地图?
tntzd 2011-02-28
  • 打赏
  • 举报
回复
用google 那一套 API 比较给力
cheniqit1 2011-02-28
  • 打赏
  • 举报
回复
哎,这个真不知道。没有得到所有坐标的方法
baobao28 2011-02-28
  • 打赏
  • 举报
回复
search返回的对象中,没找到对应点击click的方法,应该是封装起来了
dracularking 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 baobao28 的回复:]

关键是我不想点击地图,而只是通过查询返回经纬度
而且点击地图的话,不蒙每次都点击到准确的唯一点
[/Quote]
我是知道你是通过点击地图的,我上面说的是,点击地图后调用的click响应方法,能想办法去获得吗?
李鸿远 2011-02-28
  • 打赏
  • 举报
回复
String urls = "http://maps.google.com/maps/api/geocode/xml?latlng="+ly+","+lx+"&sensor=false";
URL url = new URL(urls);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String s = "";
StringBuffer sb=new StringBuffer();
br.readLine();
while((s = br.readLine())!=null){
sb.append(s+"\r\n");
}
br.close();

不知道这段代码对你有用吗?你只需要把经纬度坐标传进去就得到相关的地理信息了,so easy
baobao28 2011-02-28
  • 打赏
  • 举报
回复
up起来寻找知道百度地图用法的人
李鸿远 2011-02-28
  • 打赏
  • 举报
回复
google提供了webservice接口的,直接调就行了,不需要改太多
baobao28 2011-02-25
  • 打赏
  • 举报
回复
迫切希望得到该功能实现代码,大家一起学习
baobao28 2011-02-25
  • 打赏
  • 举报
回复
等这个功能实现后,我会公布代码,大家一起学习
baobao28 2011-02-25
  • 打赏
  • 举报
回复
我再补充一下,我可以通过点击地图得到点击点的经纬度,但是得到的不是我想要的标注点的经纬度
我追加一下代码,大家调试一下就明白我说的意思了,每次鼠标稍微移动一下,经纬度就变了,因为得到的是鼠标点击处的经纬度,所以这种方式被我抛弃了
大家点击上面的标注点,那么大个图片,稍微移动着,在标注点的范围内点击,看看出现什么,就明白了

<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>本地搜索配置</title>
<script type="text/javascript"
src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.1&services=true">

</script>
</head>
<body onload="load()">
<%
String scname = request.getParameter("scname");

if (scname == null) {
scname = "三好街";
} else {
scname = new String(scname.getBytes("iso-8859-1"), "gbk");
}
%>
<form action="#"><input type="text" name="scname"
value="<%=scname%>" id="scname" /><input type="submit" value="提交" /></form>
<div id="info" style="width: 800px; height: 100px;"></div>
<div style="width: 800px; height: 400px; border: 1px solid gray"
id="container"></div>
<div id="results"
style="width: 800px; height: 100px; font-size: 13px; margin-top: 10px;"></div>
</body>

<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(123.432791, 41.808645), 12);
map.addEventListener("click", function(e) {
document.getElementById("info").innerHTML = document.getElementById("info").innerHTML+"<br/>"+e.point.lng + ", "+ e.point.lat;
});

function load() {
var scname = document.forms[0].scname.value;

if (scname != null && scname.length > 0) {
var local = new BMap.LocalSearch("沈阳市", {
renderOptions : {
map : map,
panel : "results",
autoViewport : true,
selectFirstResult : false
}
});

local.search(scname);
}
}
</script>
</html>
baobao28 2011-02-25
  • 打赏
  • 举报
回复
关键是我不想点击地图,而只是通过查询返回经纬度
而且点击地图的话,不蒙每次都点击到准确的唯一点
dracularking 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 baobao28 的回复:]

点击获得坐标经纬度是通过鼠标的click事件,在当前地图中捕获的,
而搜索的时候没有这个事件啊
[/Quote]
真正实现的不应该是事件对应的响应方法吗,根据地图坐标获得经纬度的方法
baobao28 2011-02-25
  • 打赏
  • 举报
回复
点击获得坐标经纬度是通过鼠标的click事件,在当前地图中捕获的,
而搜索的时候没有这个事件啊
qiheia 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 baobao28 的回复:]
这种通过点击获得经纬度的方式我已经知道如何实现了,
问题是不知道如何对搜索结果获得经纬度,
因为对结果的标注点进行点击的话,如果位置不同,获得的经纬度值也不同了,毕竟是按照鼠标点击的位置来获取的
所以,还是想通过搜索后,直接返回结果集合标注点对应的所有经纬度
看过了api但是没找到对应的方法
希望知道的告诉一下,分不够可以再加
[/Quote]

既然可以点击获取到经委度的坐标,那么你只要找到这个对应的方法,然后再搜索的时候调用那个方法?
加载更多回复(4)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧