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:

Önkoşullar

Bu öğreticide Postman 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.

  1. Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ni seçin. İstek için bir İstek adı girin.

  2. Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istekte, belirli bir adresi arıyoruz: 400 Braod St, Seattle, WA 98109. Bu istek ve bu makalede bahsedilen diğer istekler için değerini Azure Haritalar abonelik anahtarınızla değiştirin{Your-Azure-Maps-Subscription-key}.

    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
    
  3. Mavi Gönder düğmesini seçin. Yanıt gövdesi tek bir konumun verilerini içerir.

  4. Ardından, birden fazla olası konumu olan bir adreste arama yapın. Parametreler bölümünde anahtarı olarak query400 Broad, Seattledeğiştirin. Mavi Gönder düğmesini seçin.

    Search for address

  5. Ardından, anahtarını olarak 400 Broaayarlamayı query deneyin.

  6. Gönder 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 , 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.

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.

  1. Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ni seçin. İstek için bir İstek adı girin.

  2. Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için değerini Azure Haritalar abonelik anahtarınızla değiştirin{Your-Azure-Maps-Subscription-key}.

    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ınformat.

  3. Gönder'i seçin ve yanıt gövdesini gözden geçirin.

    "Pizza" için belirsiz sorgu dizesi hem "pizza" hem de "restoran" kategorilerinde 10 ilgi noktası sonucu (POI) döndürdü. 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 . Arama Kapsamı.

  4. 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 olarak USayarlayın. anahtarı US olarak countrySet ayarlamak sonuçları Birleşik Devletler ile sınırlar.

    Search for pizza in the United States

    Sonuçlar artık ülke koduyla sınırlanır ve sorgu Birleşik Devletler pizza restoranlarını döndürür.

  5. 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ğiz limit .

    Parametreler bölümünde aşağıdaki anahtar/değer çiftlerini ekleyin:

    Anahtar Değer
    Lat 47.620525
    Lon -122.349274
    Radıus 400
    limit 5
  6. Gönder'i seçin. Yanıt, Seattle Space Needle yakınındaki pizza restoranlarının sonuçlarını içerir.

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.

  1. Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ni seçin. İstek için bir İstek adı girin.

  2. Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için değerini Azure Haritalar abonelik anahtarınızla değiştirin{Your-Azure-Maps-Subscription-key}. İstek aşağıdaki URL gibi görünmelidir:

    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&number=1
    
  3. Gönder'i seçin ve yanıt gövdesini gözden geçirin. Bir sorgu sonucu görmeniz gerekir. Yanıt, Kasa co Alanı ile ilgili anahtar adres bilgilerini içerir.

  4. Ardından, Params bölümüne aşağıdaki anahtar/değer çiftlerini ekleyin:

    Anahtar Değer İadeler
    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.

    Search reverse.

  5. Gönder'i seçin ve yanıt gövdesini gözden geçirin.

  6. Ardından anahtarı ekleyip entityType değerini olarak Municipalityayarlayacağız. Anahtar, entityType önceki adımda anahtarı geçersiz kılar returnMatchType . returnSpeedLimit ve returnRoadUse 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.

    Search reverse entityType.

  7. Gönder'i 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 municipalityolduğundan, yanıtta sokak adresi bilgileri yoktur. Ayrıca, döndürülen geometryId 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.

Bu örnekte, bir adresin koordinatlarına göre bir çapraz caddenin nasıl arandığı gösterilmektedir.

  1. Postman uygulamasında Yeni'yi seçerek isteği oluşturun. Yeni Oluştur penceresinde HTTP İsteği'ni seçin. İstek için bir İstek adı girin.

  2. Oluşturucu sekmesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin. Bu istek ve bu makalede bahsedilen diğer istekler için değerini Azure Haritalar abonelik anahtarınızla değiştirin{Your-Azure-Maps-Subscription-key}. İstek aşağıdaki URL gibi görünmelidir:

    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
    

    Search cross street.

  3. Gönder'i seçin ve yanıt gövdesini gözden geçirin. Yanıtın değerini crossStreet içerdiğine South Atlantic Streetdikkat edin.

Sonraki adımlar