⑴ 百度地圖api如何根據城市名或經緯度獲取當前城市東西經南北緯范圍 js
Geocoding API包括地址解析和逆地址解析功能。
地址解析是指,由詳細到街道的結構化地址得到網路經緯度信息,且支持名勝古跡、標志性建築名稱直接解析返回網路經緯度。例如:「北京市海淀區中關村南大街27號」地址解析的結果是「lng:116.31985,lat:39.959836」,「網路大廈」地址解析的結果是「lng:116.30815,lat:40.056885」
逆地址解析是指,由網路經緯度信息得到結構化地址信息。例如:「lat:31.325152,lng:120.558957」逆地址解析的結果是「江蘇省蘇州市虎丘區塔園路318號」。注意:
1.因為Geocoding和反Geocoding使用的門址數據以及演算法都不是一樣的,所以會出現不能一一對應的現象。
2.解析過程中可能會出現一對坐標值對應多個地址門牌信息,本介面將返回距離坐標點最近的一個地址門牌信息。
使用限制
目前無任何使用限制。請申請key,然後使用該介面。
如何使用
第一步,申請key,點擊這里獲取密鑰,申請key需要注冊網路賬號;
第二步,拼寫發送http請求的url,注意需使用第一步申請的key;
第三步,接收http請求返回的數據(支持json和xml格式)。
服務地址
地址解析:根據地址獲取坐標
http://api.map..com/geocoder?address=地址&output=輸出格式類型&key=用戶密鑰&city=城市名
逆地址解析:根據坐標獲取地址
http://api.map..com/geocoder?location=緯度,經度&output=輸出格式類型&key=用戶密鑰
備註:
1. city屬於可選參數,通常情況可以不使用,若解析無結果,請嘗試增加此欄位。
2. 支持名勝古跡、標志性建築物名稱解析返回網路經緯度坐標,如address=「網路大廈」。
3. 支持使用「*路與*路交叉口」方式解析返回網路經緯度坐標,若地址庫中存在該地址描述,返回網路經緯度坐標。
4. 若解析status欄位為OK,若結果內容為空,原因分析及可嘗試方法:
地址庫里無此數據,本次結果為空。
加入city欄位重新解析;
將過於詳細或簡單的地址更改至省市區縣街道重新解析;
5. 特別提醒:逆地址解析location參數傳入的參數格式是(緯度lat,經度lng)。
介面參數
參數 是否必須 默認值 格式舉例 含義
output 否 json json或xml 輸出格式為json或者xml
address 是 無 北京市海淀區上地十街10號 根據指定地址進行坐標的反定向解析
location 是 無 38.76623,116.43213
lat<緯度>,lng<經度> 根據指定坐標來進行地址的解析
city 否 「北京市」 「廣州市」 地址所在的城市名
key 是 無 用戶申請注冊的key
上表中address和location兩個欄位如果同時出現,則優先選擇address執行地理編碼功能。對於address欄位可能會出現中文或其它一些特殊字元(如:空格),所以對於類似的字元都要進行編碼處理,編碼成 UTF-8 字元的二字元十六進制值,凡是不在下表中的字元都要進行編碼。
字元集合 字元
URL非保留字 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 – _ . ~
URL保留字 ! * 『 ( ) ; : @ & = + $ , / ? % # [ ]
附註:
(1) javascript中一般採用encodeURIComponent函數對特殊字元進行編碼。
(2) Java中可以使用函數URLEncoder.encode對特殊字元進行編碼。
(3) C#中可以使用函數HttpUtility.UrlEncode對特殊字元進行編碼。
(4) php中可以使用函數urlencode對特殊字元進行編碼。
返回數據說明
返回結果(地址解析的結果)
{status: '字元串狀態常量', 取值如下:
//OK 成功
INVILID_KEY 非法密鑰
INVALID_PARAMETERS 非法參數,參數錯誤時候給出。
result: {
location: {
lat: 緯度:數值,
lng: 經度:數值
},
precise:』位置的附加信息,是否精確查找』(1為精確查找,0為不精確查找),
confidence: 可信度,
level:'級別'
},
}
返回結果(反地址解析的結果)
{status: '字元串狀態常量', 取值如下:
//OK 成功
INVILID_KEY 非法密鑰
INVALID_PARAMETERS 非法參數,參數錯誤時候給出。
result: {
location: {
lat: 緯度:數值,
lng: 經度:數值
},
formatted_address: 『詳細地址描述』,
business: '周圍商圈',
addressComponent:{
city:』城市名稱』,
district: 『區縣名稱』,
province:』省份名稱』,
street: 『街道名稱』,
streetNumber: '門牌號碼'
},
cityCode: '城市代碼'
}
}
介面示例
根據詳細地址獲取坐標
http://api.map..com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=json&key=
//根據「上地十街10號」返回坐標「lng:116.307175, lat:40.057098」,以json格式輸出
http://api.map..com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=xml&key=
//根據「上地十街十號」返回坐標「lng:116.307175, lat:40.057098」,以xml格式輸出
在指定城市內檢索詳細地址的坐標
http://api.map..com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=json&key=&city=%E5%8C%97%E4%BA%AC%E5%B8%82
// 在北京市內根據「上地十街10號」返回坐標「lng:116.307175, lat:40.057098」,以json格式輸出
http://api.map..com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=xml&key=&city=%E5%8C%97%E4%BA%AC%E5%B8%82
// 在北京市內根據「上地十街10號」返回坐標「lng:116.307175, lat:40.057098」,以json格式輸出
根據特定建築物獲取它的坐標
http://api.map..com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=json&key= //根據「網路大廈」名稱返回坐標「lng:116.307175, lat:40.057098」,以json格式輸入
http://api.map..com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=xml&key= //根據「網路大廈」名稱返回坐標「lng:116.307175, lat:40.057098」,以xml格式輸入
根據「*路與*路交叉路口」類型地址描述獲得它的坐標
http://api.map..com/geocoder?address=%E5%8C%97%E4%B8%80%E7%8E%AF%E8%B7%AF%E5%92%8C%E9%98%9C%E9%98%B3%E8%B7%AF%E7%9A%84%E4%BA%A4%E5%8F%89%E8%B7%AF%E5%8F%A3&output=json&key=
//根據「北一環路和阜陽路的交叉路口」名稱返回坐標「lng:117.294364, lat:31.885558」,以json格式輸入
http://api.map..com/geocoder?address=%E5%8C%97%E4%B8%80%E7%8E%AF%E8%B7%AF%E5%92%8C%E9%98%9C%E9%98%B3%E8%B7%AF%E7%9A%84%E4%BA%A4%E5%8F%89%E8%B7%AF%E5%8F%A3&output=xml&key=
//根據「北一環路和阜陽路的交叉路口」名稱返回坐標「lng:117.294364, lat:31.885558」,以xml格式輸入
根據坐標獲取它的地址
http://api.map..com/geocoder?output=json&location=39.983424,%20116.322987&key=
//解析「lat:39.983424, lng:116.322987」坐標返回「北京市海淀區中關村大街27號1101-08室」,以json格式輸出
http://api.map..com/geocoder?output=xml&location=39.983424,%20116.322987&key=
//解析「lat:39.983424, lng:116.322987」坐標返回「北京市海淀區中關村大街27號1101-08室」,以xml格式輸出
網路地址http://developer..com/map/geocoding-api.htm
⑵ 怎樣用ArcGIS javascript api 根據屏幕輸入的經緯度坐標定位
esri的 for javascript api help url:https://developers.arcgis.com/en/javascript/jsapi/map.html
參考 map 類 method 中 。
代碼片段:
<script>
....
point=map.toScreen(mapPoint);//經緯轉屏幕
mapPoint=map.toMap(screenPoint);//屏幕轉經緯
map.centerAndZoom(mapPoint,levelOrFactor);//根據經緯度和地圖層級定位居中
//你的position估計不是經緯度mapPoint而是point,所以不能定位
....
</script>
關於alert(position)的結果是[object,Object]可能是數組裡面是對象,不能強轉成字元串。
希望對你有幫助。