Aracılığıyla paylaş


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

Ö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.

  1. 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.

  2. 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
    
  3. Oluştur düğmesini seçin.

  4. Ç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.

  5. Parametreler bölümünde anahtarı olarak 400 Broad, Seattledeğiştirin query ve çalıştır düğmesini seçin.

    Adres arama

  6. Ardından, anahtarını olarak 400 Broaayarlamayı 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 , 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. 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.

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

  3. Ç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ı.

  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.

    Birleşik Devletler pizza arama

    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
    yarıçap 400
    limit 5
  6. Çalıştır’ı 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. 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.

  2. 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
    
  3. Ç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.

  4. 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.

    Geriye doğru arama.

  5. Çalıştır düğmesini seçin ve yanıt gövdesini gözden geçirin.

  6. Ardından anahtarı ekleyin entityType ve değerini olarak Municipalityayarlayın. 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.

    Ters entityType araması.

  7. Ç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 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. 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.

  2. 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
    
  3. Çalıştır düğmesini 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