百度地圖搜索問題


此代碼為引用百度地圖搜索名稱顯示功能
可以通過如下代碼實現搜索功能,可以在地圖上顯示出標點,可以在下面列表中顯示出內容
但是,我想得到上面所有顯示標點的經緯度集合,不知道用何種辦法

<%@ 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>

31 个解决方案

#1


該回復於2011-02-25 17:39:00被版主刪除

#2


自己頂一下,為了靠前

#3


該回復於2011-02-25 16:27:27被版主刪除

#4


http://openapi.baidu.com/map/pick/index.html

用百度的坐標拾取系統把,


看下源碼。。。。

#5


這種通過點擊獲得經緯度的方式我已經知道如何實現了,
問題是不知道如何對搜索結果獲得經緯度,
因為對結果的標注點進行點擊的話,如果位置不同,獲得的經緯度值也不同了,畢竟是按照鼠標點擊的位置來獲取的
所以,還是想通過搜索后,直接返回結果集合標注點對應的所有經緯度
看過了api但是沒找到對應的方法
希望知道的告訴一下,分不夠可以再加

#6


都是高手中的高手,路過看看

#7


引用 5 樓 baobao28 的回復:
這種通過點擊獲得經緯度的方式我已經知道如何實現了,
問題是不知道如何對搜索結果獲得經緯度,
因為對結果的標注點進行點擊的話,如果位置不同,獲得的經緯度值也不同了,畢竟是按照鼠標點擊的位置來獲取的
所以,還是想通過搜索后,直接返回結果集合標注點對應的所有經緯度
看過了api但是沒找到對應的方法
希望知道的告訴一下,分不夠可以再加


既然可以點擊獲取到經委度的坐標,那么你只要找到這個對應的方法,然后再搜索的時候調用那個方法?

#8


點擊獲得坐標經緯度是通過鼠標的click事件,在當前地圖中捕獲的,
而搜索的時候沒有這個事件啊

#9


該回復於2011-02-25 16:59:56被版主刪除

#10


引用 8 樓 baobao28 的回復:
點擊獲得坐標經緯度是通過鼠標的click事件,在當前地圖中捕獲的,
而搜索的時候沒有這個事件啊

真正實現的不應該是事件對應的響應方法嗎,根據地圖坐標獲得經緯度的方法

#11


該回復於2011-02-25 17:18:48被版主刪除

#12


關鍵是我不想點擊地圖,而只是通過查詢返回經緯度
而且點擊地圖的話,不蒙每次都點擊到准確的唯一點

#13


該回復於2011-02-25 17:17:45被版主刪除

#14


我再補充一下,我可以通過點擊地圖得到點擊點的經緯度,但是得到的不是我想要的標注點的經緯度
我追加一下代碼,大家調試一下就明白我說的意思了,每次鼠標稍微移動一下,經緯度就變了,因為得到的是鼠標點擊處的經緯度,所以這種方式被我拋棄了
大家點擊上面的標注點,那么大個圖片,稍微移動着,在標注點的范圍內點擊,看看出現什么,就明白了

<%@ 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>

#15


等這個功能實現后,我會公布代碼,大家一起學習

#16


迫切希望得到該功能實現代碼,大家一起學習

#17


該回復於2011-02-28 09:54:39被版主刪除

#18


引用 12 樓 baobao28 的回復:
關鍵是我不想點擊地圖,而只是通過查詢返回經緯度
而且點擊地圖的話,不蒙每次都點擊到准確的唯一點

我是知道你是通過點擊地圖的,我上面說的是,點擊地圖后調用的click響應方法,能想辦法去獲得嗎?

#19


search返回的對象中,沒找到對應點擊click的方法,應該是封裝起來了

#20


該回復於2011-02-28 10:49:26被版主刪除

#21


哎,這個真不知道。沒有得到所有坐標的方法

#22


用google 那一套 API 比較給力 

#23


難道真的因為這么一個應用讓我轉成google地圖?

#24


google提供了webservice接口的,直接調就行了,不需要改太多

#25


up起來尋找知道百度地圖用法的人

#26


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

#27


謝謝樓上的了,領導讓用的是百度地圖

#28


功能實現了不就ok了,反正接口是免費的,天知地知你知我知嘛  哈哈

#29


樓主代碼完成了沒 可以公布了嗎? 我很期待,我們也在做這塊!

#30


圍觀。。。

#31


引用 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


你這個是知道經緯度來獲取地理信息,樓主要的是得到搜索結果的所有對應經緯度,期待樓主找到辦法

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com