A. 大家好 有個問題想請教下 我最近用arcgis server發布一個學校的網路分析地圖服務和地理編碼服務出現如下錯
沒有許可權,找一個有網路服務許可權的許可,你這只提示networkserver沒有,其它的許可,可以把networkserver發布服務的時候去掉,然後再看看能不能發成功.
B. 什麼是地理編碼主要有哪三種方法其演算法分別是怎樣的
地理編碼(Geocoding)又稱地址匹配(address-matching),指建立地理位置坐標與給定地址一致性的過程。也是指在地圖上找到並標明每條地址所對應的位置。地理編碼是GIS中比較重要的一個功能。
地址匹配,或地理編碼,就是一個通過地址中某路段的起始,終了位置,並同時考慮到單雙號因素,以確定地理位置的過程.
一個大型的政府GIS要求能夠將任何數據移植到空間坐標系中,這個過程包括對數據的准確分類和注冊,以及使所有的數據能夠與一個空間坐標系建立關聯;從而保證資料庫中的每一個對象被准確無誤地疊加在地圖上,建立空間信息與非空間信息之間的聯系。因此,地理編碼在城市空間定位和分析領域內具有非常廣泛的應用,如滿足城市規劃建設以、公安部門119、110報警系統等基於位置的服務要求。
地理編碼的方式主要有:反向地理編碼服務、向量式地理編碼、網格式地理編碼
反向地理編碼服務
反向地理編碼服務實現了將地球表面的地址坐標轉換為標准地址的過程,反向地理編碼提供了坐標定位引擎,幫助用戶通過地面某個地物的坐標值來反向查詢得到該地物所在的行政區劃、所處街道、以及最匹配的標准地址信息。通過豐富的標准地址庫中的數據,可幫助用戶在進行移動端查詢、商業分析、規劃分析等領域創造無限價值。
向量式地理編碼
向量式地理編碼(vector geocoding)指使用坐標參考系統去定義點、線、面特徵的位置。 向量化(vectorization):指將網格式資料轉換為向量形式的過程。
網格式地理編碼
網格式地理編碼(raster geocoding)指使用建立於矩陣或方格的座標系統來標定位置,這樣的位置資料包含欄與列,稱為圖元(pixel)。 柵格化(rasterization)指將向量式資料轉換為網格形式的過程。
C. 什麼是地理編碼
地理編碼指的是將統計資料或是地址信息建立空間坐標關系的過程。
地理編碼非同一般意義上的數字編碼,不是用數字或字母來代表某一對象,而是跟據各數據點的地理坐標或空間地址(如省市、街區、樓層、房間等),將資料庫中的數據與其在地圖上相對應的圖形元素一一對應。即給每個數據賦予X、Y值,從而確定該數據標在圖上的位置的過程。
地理編碼又稱地址匹配。是為識別點、線、面的位置和屬性而設置的編碼,它將全部實體按照預先擬定的分類系統,選擇最適宜的量化方法,按實體的屬性特徵和集合坐標的數據結構記錄在計算機的儲存設備上。
地理編碼有正向地理編碼、反向地理編碼、向量式地理編碼、網格式地理編碼四種服務類型。
1、正向地理編碼,是將地址或地名描述轉換為地球表面上相應位置的過程。正向地理編碼提供地址定位引擎、行政區劃引擎、街道引擎。
2、反向地理編碼,是將地球表面的地址坐標轉換為標准地址的過程,反向地理編碼提供了坐標定位引擎,通過地面某個地物的坐標值來反向查詢得到該地物所在的行政區劃、所處街道、以及最匹配的標准地址信息。
3、向量式地理編碼,是指使用坐標參考系統去定義點、線、面特徵的位置。 向量化:指將網格式資料轉換為向量形式的過程。
4、網格式地理編碼(也叫柵格化地理編碼),是指使用建立於矩陣或方格的座標系統來標定位置,這樣的位置資料包含欄與列,稱為圖元。 柵格化:指將向量式資料轉換為網格形式的過程。
D. 地理編碼的正向地理編碼服務
正向地理編碼服務實現了將中文地址或地名描述轉換為地球表面上相應位置的功能。正向地理編碼提供的專業和多樣化的引擎以及豐富的資料庫數據使得服務應用非常廣泛,在資產管理、規劃分析、供應物流管理和移動端輸入等方面為用戶創造無限的商業價值。 網格式地理編碼(raster geocoding)指使用建立於矩陣或方格的座標系統來標定位置,這樣的位置資料包含欄與列,稱為圖元(pixel)。 柵格化(rasterization)指將向量式資料轉換為網格形式的過程。
E. 怎麼樣用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地理編碼這一小工具,可以方便快捷的利用地圖等相關廠商提供的地理編碼服務,將文字描述的位置轉換成地圖上的經緯度,或者通過地圖上的某個位置坐標獲得相應的位置信息文字描述。
F. arcgis server反地理編碼服務怎麼發布
一、使用工具:Catalog、地理編碼工具
二、發布方法步驟:
1、創建定位器
在Catalog中打開地理編碼工具->創建地址定位器,如下圖所示:
圖解ArcGIS Server之發布地理編碼服務
圖解ArcGIS Server之發布地理編碼服務
三、注意事項:將一個地址的描述信息映射為地圖上所對應的空間位置,地理編碼服務是GIS中比較重要的一個功能
G. 地理編碼在地圖中的應用
地理編碼在地圖中的應用這個在地圖中我沒看到地理編碼的應用啊。不知道他是怎麼應用的,也想知道一下。
H. 如何發布一個自己的地理編碼,逆地理編碼服務
我利用CoreLocatiolocManager=[[CLLocationManager alloc]init];// locManager.delegate=self;// locManager.desiredAccuracy=kCLLocationAccuracyBest;// locManager.distanceFilter=5.0f;// [locManager startUpdatingLocation];獲取前位置經緯度用MASearch *maSearch=[[MASearch alloc]init]; *searchOption=[[ alloc]init];searchOption.config=@"SPAS";searchOption.x=self.klatitude;searchOption.y=self.klongitude;[maSearch :searchOption]要想 提問沒意義煩惱都我自找如何發布一個自己的地理編碼,逆地理編碼服務