Azure Haritalar Arama hizmeti kullanarak konum arama
Arama hizmeti, geliştiricilerin ad, kategori ve diğer coğrafi bilgilere göre adresleri, yerleri ve iş listelerini aramasına yardımcı olmak için tasarlanmış bir DIZI RESTful API'dir. Hizmetler, geleneksel coğrafi kodlamayı desteklemenin yanı sıra, enlemlere ve boylamlara göre adresleri ve sokakları ters kodlayabilir. Arama tarafından döndürülen enlem ve boylam değerleri Rota ve Hava Durumu gibi diğer Azure Haritalar hizmetlerinde parametre olarak kullanılabilir.
Bu makalede şunların nasıl yapılacağını gösterilmektedir:
- Arama Adresi kullanarak bir adres (coğrafi kod adresi konumu) için enlem ve boylam koordinatları isteyin.
- Benzer Arama'yı kullanarak bir adres veya İlgi Noktası (POI) arayın.
- Koordinat konumunu sokak adresine çevirmek için Adres Aramasını Ters Çevir'i kullanın.
- Bir cihazdan veya varlıktan GPS akışı alan ve koordinatın nerede olduğunu bilmek isteyen uygulamaları izlemek için gereken Arama Adresi Ters Çapraz Cadde'yi kullanarak koordinat konumunu insan tarafından anlaşılabilen bir çapraz caddeye çevirin.
Önkoşullar
Önemli
Bu makaledeki URL örneklerinde Azure Haritalar abonelik anahtarınızla değiştirmeniz {Your-Azure-Maps-Subscription-key}
gerekir.
Bu makalede Bruno uygulaması kullanılır, ancak farklı bir API geliştirme ortamı seçebilirsiniz.
Adres için enlem ve boylam isteme (coğrafi kodlama)
Bu bölümdeki örnek, bir adresi enlem ve boylam koordinatlarına dönüştürmek için Arama Adresi Al'ı kullanır. Bu işleme coğrafi kodlama da denir. Yanıt, koordinatları döndürmenin yanı sıra sokak, posta kodu, belediye ve ülke/bölge bilgileri gibi ayrıntılı adres özelliklerini de döndürür.
İpucu
Coğrafi kodlamaya yönelik bir adres kümeniz varsa, Tek bir istekte bir grup sorgu göndermek için Arama Adresi Toplu İşlemini Gönder'i kullanabilirsiniz.
bruno uygulamasını açın, isteği oluşturmak için YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109
Oluştur düğmesini seçin.
Çalıştır düğmesini seçin.
Bu istek belirli bir adresi arar:
400 Broad St, Seattle, WA 98109
. Ardından, birden fazla olası konumu olan bir adreste arama yapın.Parametreler bölümünde anahtarı olarak
400 Broad, Seattle
değiştirinquery
ve çalıştır düğmesini seçin.Ardından, anahtarını olarak
400 Broa
ayarlamayıquery
deneyin ve ardından çalıştır düğmesini seçin.Yanıt, birden çok ülkenin/bölgenin sonuçlarını içerir. Kullanıcılarınızın ilgili alanına geobias sonuçları eklemek için her zaman isteğe mümkün olduğunca çok konum ayrıntısı ekleyin.
Benzer Arama
Benzer Arama , standart tek satırlı ve serbest biçimli aramaları destekler. Arama isteği için kullanıcı giriş türünüzü bilmediğinizde Azure Haritalar Arama Belirsiz API'sini kullanmanızı öneririz. Sorgu girişi tam veya kısmi bir adres olabilir. PoI adı, POI kategorisi veya marka adı gibi bir İlgi Noktası (POI) belirteci de olabilir. Ayrıca, arama sonuçlarınızın ilgi düzeyini artırmak için, koordinat konumu ve yarıçapı kullanarak veya sınırlayıcı bir kutu tanımlayarak sorgu sonuçlarını kısıtlar.
İpucu
Çoğu Arama sorgusu, performansı geliştirmek ve olağan dışı sonuçları azaltmak için maxFuzzyLevel=1
varsayılan olarak ayarlanır. veya minFuzzyLevel
parametrelerini kullanarak maxFuzzyLevel
bulanıklık düzeylerini ayarlayın. tüm isteğe bağlı parametrelerin tam listesi ve hakkında maxFuzzyLevel
daha fazla bilgi için bkz . Belirsiz Arama URI Parametreleri.
Benzer Arama kullanarak adres arama
Bu bölümdeki örnek, tüm dünyada pizza aramak ve ardından belirli bir ülkenin/bölgenin kapsamı üzerinde arama yapmak için kullanırFuzzy Search
. Son olarak, bir aramanın kapsamını belirli bir alan üzerinde sınırlandırmak ve döndürülen sonuç sayısını sınırlamak için koordinat konumunun ve yarıçapının nasıl kullanılacağını gösterir.
Önemli
Kullanıcılarınızın ilgili alanına geobias sonuçları eklemek için her zaman mümkün olduğunca çok konum ayrıntısı ekleyin. Daha fazla bilgi için bkz . Arama için En İyi Yöntemler.
bruno uygulamasını açın, isteği oluşturmak için YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
Not
YANıT biçimini URL yolundaki json özniteliği belirler. Bu makalede kullanım kolaylığı ve okunabilirlik için json kullanılabilecek. Desteklenen diğer yanıt biçimlerini bulmak için URI Parametresi başvuru belgelerindeki parametre tanımına bakın
format
.Çalıştır düğmesini seçin ve yanıt gövdesini gözden geçirin.
"Pizza" için belirsiz sorgu dizesi 10 ilgi çekici nokta (POI) döndürdü ve hem "pizza" hem de "restoran" kategorilerini içeriyor. Her sonuç sokak adresi, enlem ve boylam değerleri, görünüm bağlantı noktası ve konum için giriş noktaları gibi ayrıntıları içerir. Sonuçlar artık bu sorgu için çeşitlidir ve herhangi bir başvuru konumuna bağlı değildir.
Sonraki adımda parametresini
countrySet
kullanarak yalnızca uygulamanızın kapsama ihtiyacı olan ülkeleri/bölgeleri belirteceksiniz. Desteklenen ülkelerin/bölgelerin tam listesi için bkz. Azure Haritalar coğrafi kodlama kapsamı.Varsayılan davranış, gereksiz sonuçlar döndüren tüm dünyada arama yapmaktır. Ardından, yalnızca Birleşik Devletler pizza arayın.
countrySet
Anahtarı Params bölümüne ekleyin ve değerini olarakUS
ayarlayın. anahtarıUS
olarakcountrySet
ayarlamak sonuçları Birleşik Devletler ile sınırlar.Sonuçlar artık ülke koduyla sınırlanır ve sorgu Birleşik Devletler pizza restoranlarını döndürür.
Daha da fazla hedeflenen arama elde etmek için lat/lon koordinat çiftinin kapsamı üzerinde arama yapabilirsiniz. Aşağıdaki örnek Seattle Space Needle'ın lat/lon koordinatlarını kullanır. Sonuçları yalnızca 400 metre yarıçapı içinde döndürmek istediğimizden parametresini
radius
ekleriz. Ayrıca, sonuçları en yakın beş pizza yeriyle sınırlamak için parametresini ekleyeceğizlimit
.Parametreler bölümünde aşağıdaki anahtar/değer çiftlerini ekleyin:
Anahtar Değer Lat 47.620525 Lon -122.349274 yarıçap 400 limit 5 Çalıştır’ı seçin. Yanıt, Seattle Space Needle yakınındaki pizza restoranlarının sonuçlarını içerir.
Ters Adres Arama kullanarak sokak adresi arama
Get Search Address Reverse , koordinatları okunabilir sokak adreslerine çevirir. Bu API genellikle GPS akışlarını kullanan ve belirli koordinat noktalarında adresleri bulmak isteyen uygulamalar için kullanılır.
Önemli
Kullanıcılarınızın ilgili alanına geobias sonuçları eklemek için her zaman mümkün olduğunca çok konum ayrıntısı ekleyin. Daha fazla bilgi için bkz . Arama için En İyi Yöntemler.
İpucu
Coğrafi kodu ters çevirmek için bir dizi koordinat konumunuz varsa, tek bir istekte bir grup sorgu göndermek için Arama Adresi Ters Toplu İşlemi Gönder'i kullanabilirsiniz.
Bu örnek, kullanılabilen isteğe bağlı parametrelerden birkaçını kullanarak ters aramalar yapmayı gösterir. İsteğe bağlı parametrelerin tam listesi için bkz . Ters Arama Parametreleri.
bruno uygulamasını açın, isteği oluşturmak için YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Çalıştır düğmesini seçin ve yanıt gövdesini gözden geçirin. Bir sorgu sonucu görmeniz gerekir. Yanıt, Safeco Alanı ile ilgili anahtar adres bilgilerini içerir.
Ardından, Params bölümüne aşağıdaki anahtar/değer çiftlerini ekleyin:
Anahtar Değer Döndürülenler Numara 1 Yanıt, caddenin kenarını (Sol/Sağ) ve ayrıca sayı için bir uzaklık konumunu içerebilir. returnSpeedLimit true Adreste hız sınırını döndürür. returnRoadUse true Adreste yol kullanım türlerini döndürür. Tüm olası yol kullanım türleri için bkz . Yol Kullanım Türleri. returnMatchType true Eşleşme türünü döndürür. Tüm olası değerler için bkz . Adres Arama Sonuçlarını Ters Çevir. Çalıştır düğmesini seçin ve yanıt gövdesini gözden geçirin.
Ardından anahtarı ekleyin
entityType
ve değerini olarakMunicipality
ayarlayın. Anahtar,entityType
önceki adımda anahtarı geçersiz kılarreturnMatchType
.returnSpeedLimit
vereturnRoadUse
ayrıca belediye hakkında bilgi talep ettiğiniz için kaldırılması gerekiyor. Tüm olası varlık türleri için bkz . Varlık Türleri.Çalıştır düğmesini seçin. Sonuçları 5. adımda döndürülen sonuçlarla karşılaştırın. İstenen varlık türü artık
municipality
olduğundan, yanıtta sokak adresi bilgileri yoktur. Ayrıca, döndürülengeometryId
Azure Haritalar Get Search Çokgen API'sini kullanarak sınır çokgeni istemek için kullanılabilir.
İpucu
Bunlar ve diğer parametreler hakkında daha fazla bilgi için bkz . Ters Arama Parametreleri.
Ters Adres Çapraz Arama'yı kullanarak çapraz cadde araması
Bu örnekte, bir adresin koordinatlarına göre bir çapraz caddenin nasıl arandığı gösterilmektedir.
bruno uygulamasını açın, isteği oluşturmak için YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
https://atlas.microsoft.com/search/address/reverse/crossstreet/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Çalıştır düğmesini seçin ve yanıt gövdesini gözden geçirin. Yanıtın değerini
crossStreet
içerdiğineSouth Atlantic Street
dikkat edin.