A. arcgis server反地理編碼服務怎麼發布
一、使用工具:Catalog、地理編碼工具
二、發布方法步驟:
1、創建定位器
在Catalog中打開地理編碼工具->創建地址定位器,如下圖所示:
圖解ArcGIS Server之發布地理編碼服務
圖解ArcGIS Server之發布地理編碼服務
三、注意事項:將一個地址的描述信息映射為地圖上所對應的空間位置,地理編碼服務是GIS中比較重要的一個功能
B. 我想做一個小地區的電子地圖,怎麼做呢
如果想做的專業一些的話,有專業的做地圖的軟體mapinfo
下載地址:
www.mapinfo.com.cn
是mapinfo的中國官方網站http://lib.verycd.com/2005/04/07/0000045369.html
使用emule下載
emule的下載地址:http://www.emule.org.cn/download/
MapInfo地理信息系統平台作為一個圖形-文字信息完善結合的軟體工具,能將所需要的信息資料形象、直觀地與地理圖形緊密地聯結起來,能提供大量常用的分析、查詢功能,能將結果以圖形或表格的方式顯示出來。
MapInfo軟體提供與一些常用資料庫的介面,可以直接或間接地與這些資料庫進行數據交換。
MapInfo軟體提供的開發工具MapBasic,
可完成用戶在圖形、界面、查詢、分析等方面的各種要求,以形成全用戶化的應用集成。配接多媒體系統可使用戶對
地圖進行多媒體查詢。MapInfo軟體適用於軍隊管理與指揮、市場營銷、城市規劃、市政管理、公安交通、郵電通訊、石油地質、土地資源、人口管理、金融保險等各個應用領域,能對用戶的管理、決策提供有力的支持與幫助。
一、強大的圖形表達、處理功能
MapInfo做為一種功能強大的圖形軟體,利用點、線、區域等多種圖形元素,及豐富的地圖符號、文本類型、線型、填充模式和顏色等表現類型,可詳盡、直觀、形象地完成電子地圖數據的顯示。同時MapInfo對於點陣圖文件(如GIF、TIF、PCX、BMP、TGA等多種格式的點陣圖文件)和衛片(SPOT)、航片、照片等柵格圖象,也可以進行屏幕顯示,根據實際需要還可以對其進行矢量化。此外,DXF格式(AutoCAD和其它CAD軟體包的圖形/數據交換格式)的數據文件,也可以直接運用於MapInfo當中。在圖形處理方面,它提供了功能強大的編圖工具箱,用戶可以對各種圖形元素任意進行增加、刪除、修改等基本編輯操作。
MapInfo所處理的電子地圖與一般地圖不同。一般的地圖,各類要素、信息集中在一起,不利於不同用戶對不同的地理信息的查詢使用。MapInfo對地圖是分層處理,用戶可以通過圖形分層技術,根據自己的不同需求或一定的標准對各種圖形元素進行分層組合,將一張地圖分成不同圖層。例如對於某個城市圖,可分為區劃、道路、河流、建築物、標注等若干層。對於每一個圖層又可以針對其信息數據的不同內容要求,運用不同的數據格式和不同的資料庫類型如(dBase、FoxBase、Lotus1-2-3、Oracle、Sybase等)。
而在用戶對圖形或資料庫進行顯示、編輯、查詢等操作時,又可以對任意圖層實現自動標注。對標注的大小、字
體、位置、內容、顏色還可隨時根據需要進行修改。為提高做圖效率,
MapInfo設有裝飾層,用戶可將所畫的圖形在裝飾層里編輯,認可後再存入相應層。利用MapInfo提供的視圖工具(Zoom
tool),
用戶可對矢量圖形和光柵圖象進行任意比例的無級縮放,可縱覽全局,亦可細觀局部。為了滿足某些用戶對於地理坐標系統的特殊需求,MapInfo不僅提供有幾百種地理投影模式可供選擇,用戶還可以通過編輯投影參數,定義自己的地圖投影模式。
二、實用的關系型資料庫功能
MapInfo具有動態聯接的關系型資料庫的功能。MapInfo可以直接讀取dBase、FoxBase、Clipper、Lotus1-2-3、Microsoft
Excel及ASCII文件。在客戶\伺服器(Client\
server)的網格環境中
,通過SQL
DATALINK數據聯接軟體包提供的QELIB、ODBC介面,可以同遠程伺服器聯接,直接讀取Sybase、Oracle、INGRES、DB/2
DataBase
Manager
、
SQLBase
、Netware
SQL
、
XDB等十幾種大型資料庫中的數據信息。MapInfo還可以將數據文件及圖形目標的圖形屬性轉換成mif、mid格式的AsCII文件,供其它用戶使用。
MapInfo可以運用地理編碼(GeoCode)的功能,根據各數據點的地理坐標或空間地址(如省市、街區、樓層、房間等),將資料庫的數據與其在地圖上相對應的圖形元素一一對應。通過完成資料庫與圖形的有機結合,實現在圖形的基礎上對資料庫進行操作。
MapInfo引進了靶區(Target)的概念。通過設定靶區,不僅可以實現各圖形對象之間的數據項的合並和分離,而且可以完成對靶區局部圖形對象及資料庫內容的清除(Erase)和迭加
(Overlay)處理。MapInfo自備內置關系資料庫,用戶可以自由定義。每個庫可有255個欄位(field),20億條記錄。
三、靈活的數據查詢分析功能
MapInfo的精華是其分析查詢功能,即它能夠精確地在屏幕上查詢、分析與其相應的地理資料庫信息。面對大量的數據,僅對其進行數學統計就已經是一項非常繁重的工作,更何況進行
精確的分類、查詢和判斷分析。對於相對比較簡單的分析查詢,MapInfo提供了對象(Object)查詢工具、區域(包括矩形、圓形和多邊形的區域)查詢工具、緩沖區(Buffer)查詢、和一些常用的邏輯與數據的分析查詢函數,用戶隨時可運用靈活的查詢工具(Info
tools)或運用函數建立表達式(Expression)的方式完成;而對較復雜的分析查詢,則可通過運行MapBasic編寫的查詢程序命令來實現。
四、多樣化的數據可視表達方式
MapInfo採用了地圖(Map)、瀏覽表格(Browser)及直觀圖(Graph)等三種不同的方式對資料庫內容進行描述,這三種視圖均可動態聯接。當用戶改變某一張視圖的數據時,其它視圖會實時自動地作相應的變化。
對於信息數據和查詢分析的結果,MapInfo還可以採用專題圖(ThematicMap)的顯示方式,它以柱狀圖(Bar
chart)、圓餅圖(Pie
chart)、點密度圖(DotDensity)、區塊圖(Ranges)、數量分級圖(
Graated
)等多種顯示模式,運用用戶自定義的顏色、填充模式、圖形圖例等圖形顯示類型,直觀、生動地把數據和分析查詢結果顯示在屏幕上,便於用戶迅速地了解和判斷有關的信息數據和查詢結果。
五、功能強大的系統開發工具
MapInfo系統軟體提供MapBasic作為與MapInfo配套的開發工具。用戶使用MapBasic,可以設計、建立符合自己特點和要求的純用戶化的應用系統。作為一種結構化語言,MapBasic提供了380多種函數和命令語句,既簡潔明了、易於學習,又具有強大的功能,可以完成用戶的各種需求。與傳統的GIS軟體相比較,良好的軟體集成環境和面向對象及事件驅動的編程思想,都是MapBasic的優點。
針對各類用戶的不同需求,用MapBasic可以迅速地制定出用戶特需的菜單、按鈕盒或對話框等,用戶不僅可以修改標準的MI菜單,而且可在原菜單條上增加新的菜單項。使用MapBasic用戶可方便、准確地繪制經、緯度線,避免手工繪制的枯燥以及可能引起的誤差;也可以設計各種新的圖形符號。
MapBasic含有一系列SQL函數和許多非常實用的語句,大大增強了對數據進行操作的能力。如僅用一條非常簡單的MapBasic的
Select語句,就可以進行對資料庫的查詢工作,實現對數據排
序、求和、過濾等操作。此外,MapBasic所提供的一系列對
MapInfo的表(Table)或其它類型的表格(如dBASE、FoxBase、Lotus、ASCII或Excel的表格文件)進行操作的命令和函數,可完成對表的各種操作(如打開、新建或修改表等),進行對數據對象的各種編輯操作。利用MapBasic還可以將多媒體技術引入地理信息系統,可以使系統更加形象、生動。
MapBasic提供了MapInfo和其它應用程序的介面,MapBasic的開放式體系結構允許程序員調用外部函數中的常式。例如MapBasic
不僅可以利用DDE(Dynamic
Data
Exchange)調用其它軟體中的程序(C語言、Visual
Basic的應用程序),還可以調用Windows
DLL(Dynamic
Link
Libary)中的常式。用戶還可以通過運用MapBasic編寫的執行程序,來完成在工作中復雜的例行工序,這樣就可以將日常煩瑣的例行工作交給了計算機處理,不僅能夠大大的提高工作效率,而且還將管理人員從完全不必要的精力消耗中徹底解放出來。
六、方便靈活的圖形輸入輸出功能
對於圖形的輸入和輸出,MapInfo也提供了強有力的支持。使用MapInfo軟體可處理通過掃描儀、數字化儀輸入的數據信息。如果利用美國DTC公司(Digitizer
Technology
Company)所生產的VTI(Virtual
Table
Interfae)介面軟體,MapInfo可與當前國際流行的Summagraphics、Calcomp等200多種數字化儀連接。利用其相應的硬體支撐平台,MapInfo在靈活的調整了版面內容及其間的相對比例之後,可以通過彩色繪圖儀、列印機輸出任意比例的圖形、電子表格、圖表及圖例,或直接將窗口中顯示的矢量地圖轉成
bmp文件或Metafile文件。
七、支持多種硬體操作平台
MapInfo能夠支持多種硬體操作平台及適應較低的工作環境。MapInfo和MapBasic有可用於DOS、Windows
3.1、Windows
95、Windows
NT
Tm
、Macintosh、Sun和Hp等多種硬體平台的版本,而且用MapBasic編寫的程序可以運行於任意一種硬體平台之上。
用戶可以根據自己的實際要求和經濟承受能力選用適當的產品。
八、快速、准確的GPS連接能力
MapInfo提供了良好的地圖環境,為GPS提供了相應的控制顯示技術,使GPS跟蹤目標能實時地、准確地顯示在當前地圖中,並顯示當前跟蹤目標的經緯度。
九、高精度的地圖數據產品
MapInfo還提供有全球范圍可分為十幾個圖層的地理圖形的矢量數據產品,其中主要包括人文地理、行政區劃、公路交通、人口統計、自然資源等方面的內容。局部地區的數據可達到街區一級的精度。
有了這些數據產品,用戶就可以直接與自己的資料庫聯接,實現資料庫內容的可視化管理。
參考資料:http://www.zgconline.com/microsoft/mapinfo/
http://..com/question/1190514.html
C. android 怎麼批量調用百度地圖的地理編碼功能
一、下載最新網路地圖sdk,導入工程中
二、根據官方文檔初始化地圖,在main.xml中添加對應布局
<com..mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"/>
//獲取地圖控制項引用
mapView = (MapView) findViewById(R.id.bmapView);
Map = mapView.getMap(); // 獲取地圖控制器
三、通過地理編碼獲取經緯度
p//第一步,創建地理編碼檢索實例;
mSearch=GeoCoder.newInstance();//第二步,創建地理編碼檢索監聽者;
=(){publicvoidonGetGeoCodeResult(GeoCodeResultresult){if(result==null||result.error!=SearchResult.ERRORNO.NO_ERROR){//沒有檢索到結果
}else{//獲取地理編碼結果
floatlatitude=(float)result.getLocation().latitude;floatlongitude=(float)result.getLocation().longitude;finalLatLngpoint=newLatLng(latitude,longitude);//載入自定義marker
ViewpopMarker=View.inflate(MainActivity.this,R.layout.pop,null);
Bitmapbitmap1=getViewBitmap(popMarker);
=BitmapDescriptorFactory.fromBitmap(bitmap1);//構建MarkerOption,用於在地圖上添加Marker
OverlayOptionsoption=newMarkerOptions()
.position(point)
.icon(bitmapDescriptor);//在地圖上添加Marker,並顯示
Markermarker=(Marker)Map.addOverlay(option);
}
}@Override
(ReverseGeoCodeResultresult){if(result==null||result.error!=SearchResult.ERRORNO.NO_ERROR){//沒有找到檢索結果
}//獲取反向地理編碼結果
}
};//第三步,設置地理編碼檢索監聽者;
mSearch.setOnGetGeoCodeResultListener(listener);//第四步,發起地理編碼檢索;
mSearch.geocode(newGeoCodeOption()
.city("北京")
.address("海淀區上地十街10號"));//網路地圖上少一個括弧
將View轉換成Bitmap的方法/**
*將View轉換成Bitmap
*@paramaddViewContent
*@return
*/privateBitmapgetViewBitmap(ViewaddViewContent){
addViewContent.setDrawingCacheEnabled(true);
addViewContent.measure(
View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED));
addViewContent.layout(0,0,
addViewContent.getMeasuredWidth(),
addViewContent.getMeasuredHeight());
addViewContent.buildDrawingCache();
BitmapcacheBitmap=addViewContent.getDrawingCache();
Bitmapbitmap=Bitmap.createBitmap(cacheBitmap);returnbitmap;
}
Marker的自定義布局pop.xml
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<ImageView
android:id="@+id/iv_title"
android:layout_width="42dp"
android:layout_height="42dp"
/>
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="42dp"
android:padding="5dp"
android:gravity="center"
android:text="標題"
android:textSize="16dp"/></LinearLayout>
D. 地理反編碼失敗應該怎麼處理
如果請求不成功,則引發LocatorException,並帶有一個錯誤代碼將指明請求不成功的原因。 如果請求不成功或在傳輸層中止,則根據 值指定的方式,請求將被取消。
E. ios 怎麼把 百度地圖定位反地理編碼寫成工具類
涉及到幾個比較重要的函數
1.定位結束時返回用戶經緯度的函數
/**
*用戶位置更新後,會調用此函數
*@param userLocation 新的用戶位置
*/
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation;
2.
/**
*根據地理坐標獲取地址信息
*非同步函數,返回結果在BMKGeoCodeSearchDelegate的onGetAddrResult通知
*@param reverseGeoCodeOption 反geo檢索信息類
*@return 成功返回YES,否則返回NO
*/
- (BOOL)reverseGeoCode:(BMKReverseGeoCodeOption*)reverseGeoCodeOption;
3.
/**
*返回地址信息搜索結果
*@param searcher 搜索對象
*@param result 搜索結BMKGeoCodeSearch果
*@param error 錯誤號,@see BMKSearchErrorCode
*/
- (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error;
通過這三個函數 就能把通過定位獲得的經緯度轉換成反地理編碼
F. iPhone6的12123地理反編碼失敗怎麼辦
解決辦法:
1、 如果請求不成功或在傳輸層中止,則根據 值指定的方式,請求將被取消。
2、如果請求不成功,則引發LocatorException,並帶有一個錯誤代碼,指明請求不成功的原因。
3、可以中斷設備應用程序可以使用定位器類,以便一次只發出一個請求。
蘋果有自己獨立的定位,不允許別人來掌控。
(1)地理編碼:把地理名字轉為地理位置。
(2)作用:把地理名字轉為經緯度。
(3)反編碼:把位置信息轉換成文字內容。
(4)作用:可以點擊地圖上的某個位置 來獲得該位置的文字描述。
(5)用漢字表示:漢字必須寫在度數的前面如:北緯40°、南緯25°、東經10°、西經35°
(6)用英文字母表示:字母必須寫在度數的後面(N表示北緯、S表示南緯、E表示東經、W表示西經。這四個字母其實就是英文單詞中東、西、南、北四個方向單詞的頭一個字母)如:北緯40°=40°N、南緯25°=25°S、東經10°=10°E、西經35°=35°W。
(7)如果問經度和經度坐標,哪個寫在前,哪個寫在後,就好像數學中直角坐標系中的X值、Y值誰在前、誰在後的問題。至於地理經緯度的前後,沒有硬性規定,關鍵是平時的書寫習慣,順序顛倒了,也不會算你錯。(在地理專業中,多數情況下是先寫經度,後寫緯度)。
參考鏈接:
IPone 6網路
參考圖片:
G. 如何用Mapinfo 製作TAB 連線
1.首先,tab表要有樓高這個欄位;2.用mapinfo將excel表打開(直接打開即可);3.在「表->維護->表結構」中將excel表的「地理編碼」欄位設為索引;4.用「表->更新列」菜單,在「更新列」對話框中依次選擇要更新的tab表,更新的欄位(即樓高啦),「從中獲得值的表」這里要選擇你的excel表,並點旁邊的「聯接」,查看兩個表是否都以「地理編碼」相聯接,若不是,則手動改過來,確定;5.下面的兩項,是在設置聯接後彈出來的,用於選擇你要採用的值,選擇好「屬於」的欄位(樓高嘍),確定即可。完畢。不知道是不是最簡捷的方法,但絕對可行哦!
H. 什麼是地理編碼作用是什麼
地理編碼是為識別點、線、面的位置和屬性而設置的編碼,它將全部實體按照預先擬定的分類系統,選擇最適宜的量化方法,按實體的屬性特徵和集合坐標的數據結構記錄在計算機的儲存設備上。
作用:
1、提供了坐標定位引擎,幫助用戶通過地面某個地物的坐標值來反向查詢得到該地物所在的行政區劃、所處街道、以及最匹配的標准地址信息。通過豐富的標准地址庫中的數據,可幫助用戶在進行移動端查詢、商業分析、規劃分析等領域創造無限價值。
2、提供的專業和多樣化的引擎以及豐富的資料庫數據使得服務應用非常廣泛,在資產管理、規劃分析、供應物流管理和移動端輸入等方面為用戶創造無限的商業價值。
(8)怎麼做地理編碼擴展閱讀:
相關地理定位服務:
GIS:
地理信息系統是一個決策支持系統,它具有信息系統的各種特點。地理信息系統與其他信息系統的主要區別在於其存儲和處理的信息是經過地理編碼的,地理位置及與該位置有關的地物屬性信息成為信息檢索的重要部分。
在地理信息系統中,現實世界被表達成一系列的地理要素和地理現象,這些地理特徵至少由空間位置參考信息和非位置信息兩個部分組成。
地理信息系統首先是一種計算機系統:該系統通常又由若干個相互關聯的子系統構成,如地理數據採集子系統、地理數據管理子系統、地理數據處理和分析子系統、地理數據可視化表達與輸出子系統等。
這些子系統的構成影響著地理信息系統硬體的配置,功能與效率、數據處理的方式和產品輸出的類型等。
GPS:
由於GPS技術所具有的全天候、高精度和自動的測量特點作為先進的測量手段和新的生產力,已經融入了國民經濟建設、國防建設和社會發展的各個應用領域。
RS:
"遙感",顧名思義,就是遙遠的感知。地球上的每一個物體都在不停地吸收、發射和反射信息和能量。其中的一種形式-電磁波,早已經被人們所認識和利用。
人們發現不同物體的電磁波特性是不同的。遙感就是根據這個原理來探測地表物體對電磁波的反射和其發射的電磁波,從而提取這些物體的信息,完成遠距離識別物體。
各種衛星通過不同的遙感技術實現不同的用途,如氣象衛星是用於氣象的觀測預報;海洋水色衛星用於海洋觀測;陸地資源衛星用於陸地上所有土地、森林、河流、礦產、環境資源等的調查。
雷達衛星是以全天候(不管陰天、雲霧)、全天時(不管黑天、白天)以及能穿透一些地物(如水體、植被及土地等)為特點的對地觀測遙感衛星。
I. 怎麼用Excel編寫tableau地理編碼
使用自定義tableau地理編碼分幾種情況,一種是拓展已有的地理角色,比如tableau自帶的區縣級數據往往都不完整,我們可以導入自定義編碼csv文件。需要注意的是csv裡面的列名是固定的,得有Country、State/Province、City、(County)、Longitude、Latitude等列,保存為csv格式,並單獨放到一個文件夾中(此文件夾可以放很多自定義地理編碼文件,但不要放其他文件),然後再desktop里點擊地圖-地理編碼-導入自定義地理編碼,選擇導入;
還有一種是添加新的地理角色,比如不同山脈的經緯度,只需要山脈名稱、對應的經緯度就可以,然後在tableau中導入後,選擇山脈名稱這個欄位對應的地理角色,直接選擇最底下的山脈名稱就可以。
J. 怎麼樣用Python實現地理編碼
引言
今天看到一篇阿里雲的文章天下武功,唯快不破,以物流行業為例,分析了 PostgreSQL 與 Greenplum 在地理位置信息處理,最佳路徑演算法,機器學習等方面的物流行業應用方法。其中提到了地址轉換成坐標的問題,更專業些的名詞應該是「地理編碼」,即知道一個地址,如北京市海淀區上地十街10號,怎麼樣可以獲取到對應的經緯度位置信息(40,116),或者反過來。
地理編碼概念
很多地圖相關的廠商都提供了相關的API,我們可以直接利用這些API得到這些信息。比如網路的Geocoding API。
Geocoding API是一類介面,用於提供從地址到經緯度坐標或者從經緯度坐標到地址的轉換服務,用戶可以使用C# 、C++、Java等開發語言發送請求且接收JSON、XML的返回數據。Geocoding API包括地址解析和逆地址解析功能:
Paste_Image.png
地理編碼:即地址解析,由詳細到街道的結構化地址得到網路經緯度信息,例如:「北京市海淀區中關村南大街27號」地址解析的結果是「lng:116.31985,lat:39.959836」。同時,地理編碼也支持名勝古跡、標志性建築名稱直接解析返回網路經緯度,例如:「網路大廈」地址解析的結果是「lng:116.30815,lat:40.056885」 。
逆地理編碼:即逆地址解析,由網路經緯度信息得到結構化地址信息,例如:「lat:31.325152,lng:120.558957」逆地址解析的結果是「江蘇省蘇州市虎丘區塔園路318號」。
不過,需要說明的一點是,若想使用網路的這套API的前提是,有網路賬號並申請相應的Key。其實,除了網路之外,谷歌、ESRI、微軟的Bing等都有類似的地理編碼服務。不過這些服務大多沒有專門針對Python的庫並且彼此之間的Json結構也不一致。於是乎專治不服的Python大神做了一個專門的地理編碼工具geocoder,將這些不同廠商的服務整合統一起來。
地理編碼工具geocoder
首先看一下它都支持哪些公司的地理編碼服務:
Provider
Optimal
Usage Policy
ArcGIS World
Bai China API key
Bing World API key
CanadaPost Canada API key
FreeGeoIP World
Geocoder.ca CA & US Rate Limit
GeocodeFarm World Policy
GeoNames World Username
GeoOttawa Ottawa
Google World Rate Limit, Policy
HERE World API key
IPInfo World
Mapbox World API key
MapQuest World API key
Mapzen World API key
MaxMind World
OpenCage World API key
OpenStreetMap World Policy
Tamu US API key
TomTom World API key
What3Words World API key
Yahoo World
Yandex Russia
TGOS Taiwan
安裝
pip install geocoder
地理編碼
import geocoder
g = geocoder.google("1403 Washington Ave, New Orleans, LA 70130")
g = geocoder.arcgis(u"北京市海淀區上地十街10號")
g.latlng
輸出為
[29.9287839, -90.08421849999999]
也可以查看完整的geojson
g.geojson
輸出為
{'bbox': [-90.0855674802915,
29.9274349197085,
-90.0828695197085,
29.9301328802915],
'geometry': {'coordinates': [-90.08421849999999, 29.9287839],
'type': 'Point'},
'properties': {'accuracy': u'ROOFTOP',
'address': u'1403 Washington Ave, New Orleans, LA 70130, USA',
'bbox': [-90.0855674802915,
29.9274349197085,
-90.0828695197085,
29.9301328802915],
'city': u'New Orleans',
'confidence': 9,
'country': u'US',
'county': u'Orleans Parish',
'encoding': 'utf-8',
'housenumber': u'1403',
'lat': 29.9287839,
'lng': -90.08421849999999,
'location': '1403 Washington Ave, New Orleans, LA 70130',
'neighborhood': u'Garden District',
'ok': True,
'place': u'ChIJGyFHWc2lIIYRYSoneaXAUiw',
'postal': u'70130',
'provider': 'google',
'quality': u'street_address',
'state': u'LA',
'status': 'OK',
'status_code': 200,
'street': u'Washington Ave'},
'type': 'Feature'}
直接用Google嘗試查詢中文地址時失敗
g = geocoder.google(u"北京市海淀區上地十街10號")
g.ok
輸出為
False
用網路應該沒問題,不過我沒有申請相應的key。切換到arcgis,能夠成功編碼
g = geocoder.arcgis(u"北京市海淀區上地十街10號")
g.latlng
輸出為
[40.050934, 116.30079]
逆地理編碼
g = geocoder.google([29.9287839, -90.08421849999999], method='reverse')
print g.address
print g.city
print g.state
print g.country
輸出為
1403 Washington Ave, New Orleans, LA 70115, USA
New Orleans
LA
US
換成中國的地址
g = geocoder.google([40.050934, 116.30079], method='reverse')
print g.address
print g.city
print g.state
print g.country
輸出為
Bai Du Da Sha, Haidian Qu, Beijing Shi, China, 100193
Beijing
Beijing Shi
CN
用arcgis的服務試試
g = geocoder.arcgis([40.050934, 116.30079], method='reverse')
print g.address
print g.city
print g.state
print g.country
輸出為
None
北京市
北京市
CHN
Google轉換成的是英文,但地址比較全。arcgis雖然是中文,但是詳細的地址居然輸出為了None,這有個X用。
其他
geocoder 的功能不止於此,它還可以查IP(包括自己的)。
g = geocoder.ip('199.7.157.0')
print g.latlng
print g.city
g = geocoder.ip('me')
print g.latlng
print g.city
輸出為
[43.6934, -79.4857]
Toronto
[51.05, 13.75]
Dresden
查詢一個城市的空間包圍盒
g = geocoder.arcgis(u"山東")
g.bbox
輸出為
{'northeast': [38.976997, 121.976998], 'southwest': [33.022997, 116.022998]}
小結
空間信息既可以利用行政區劃、自然地理區域等文本信息描述,也可以用坐標系統、數字(郵編等)來標識。利用地理編碼技術,可以將空間信息的地理定位要素與相應的文本信息關聯起來。本文主要介紹了geocoder地理編碼這一小工具,可以方便快捷的利用地圖等相關廠商提供的地理編碼服務,將文字描述的位置轉換成地圖上的經緯度,或者通過地圖上的某個位置坐標獲得相應的位置信息文字描述。