2016-12-20 4 views
1

Microsoftから下記のリンクを参照してvb.netコードを作成しました。 https://msdn.microsoft.com/en-us/library/dd221354.aspxVB.NetとBing Mapsを使用して検索すると10個以上の結果が表示されます

ニューヨークで言うピザを検索すると10以上の結果が得られますか?私がニューヨークでピザを検索すると、私は10の場所の結果しか得られません。どうすればそれらのすべてを手に入れることができますか?また、リクエストでアドレスを取得することは可能ですか?以下は私のコードです。

Imports Bing.SearchService 

Public Class Form1 

Private Sub btnGeoCode_Click(sender As System.Object, e As System.EventArgs) Handles btnGeoCode.Click 
    test(TextBox1.Text) 
End Sub 

Public Sub test(ByVal keywordLocation As String) 

    Dim Key As String = "" 
    Dim searchRequest As New SearchRequest 

    'credentials 
    searchRequest.Credentials = New SearchService.Credentials() 
    searchRequest.Credentials.ApplicationId = Key 

    ' Create the search query 
    Dim ssQuery As New StructuredSearchQuery 
    Dim parts As String() = keywordLocation.Split(";") 

    ssQuery.Keyword = parts(0) 
    ssQuery.Location = parts(1) 
    searchRequest.StructuredQuery = ssQuery 


    Dim searchService As New SearchServiceClient 
    Dim SearchResponse As SearchResponse = searchService.Search(searchRequest) 

    If SearchResponse.ResultSets(0).Results.Length > 0 Then 

     Dim lstName As New ArrayList 
     Dim lstAddress As New ArrayList 

     For i As Integer = 0 To SearchResponse.ResultSets(0).Results.Length - 1 

      lstName.Add(SearchResponse.ResultSets(0).Results(i).Name) 
      lstAddress.Add(SearchResponse.ResultSets(0).Results(i).LocationData) 

     Next 

    End If 

End Sub 

End Class 
+0

私は住所を知りました。 lstAddress.Add(DirectCast(SearchResponse.ResultSets(0).Results(0)、Bing.SearchService.BusinessSearchResult).Address.FormattedAddress)どうすれば10以上の結果を得ることができますか? – CodeMonger

+0

私はあまりにもビンのマップに精通していないが、あなたが提供したリンクに基づいて私はあなたの質問に答えが表示されます。多分? –

+0

私は10点以上の結果を表示し、上記のコードが正しく機能していることを意味します。 –

答えて

0

従来のBing Maps SOAPサービスを使用しているようです。あなたはカウントオプションを設定することで、検索サービスを持つ25のまでの結果を返すことができます。

searchRequest.SearchOptions = new SearchService.SearchOptions(); 
searchRequest.SearchOptions.Count = 25; 

クエリの「ここ」コンポーネントが返されるためのアドレスを持ってするオプションはありません。ただし、解析されたクエリ値を見ることができ、必要な情報を提供することができます。中心座標が必要な場合は、その情報をジオコードできます。

Bing Maps石鹸サービスの寿命は近づいており、2017年6月末に廃止される予定です。これらのサービスは、約6年前にBing Maps RESTサービスに置き換えられました。しかし、関心のあるポイントやビジネスリスティングに自由形式のクエリを提供するサービスはありません。別のサービスがあり、近くの検索を行っているデータソースを検索したり、カテゴリに基づいてフィルタリングしたりすることができます。クエリの「場所」部分をまずジオコーディングし、その座標を使用して近くの注目点を半径方向に検索します。ここではいくつかの有用なリソースがこの上にある:

https://msdn.microsoft.com/en-us/library/ff701713.aspx

https://github.com/Microsoft/BingMapsRESTToolkit/

https://msdn.microsoft.com/en-us/library/hh478189.aspx

https://msdn.microsoft.com/en-us/library/gg585126.aspx

https://code.msdn.microsoft.com/Augmented-Reality-with-bcb17045?redir=0

(.NETでのBing空間データ・サービスを使用する方法を示しています)

現在はありませんBing Spatial Data Servicesの.NETツールキットですが、間もなくそのようになります。

+0

ありがとうございました。ニューヨークのピザ店をすべてビンから手に入れる方法はありますか? – CodeMonger

+0

POIのカテゴリを見ると、ピザ用のレストランはなく、レストランのみがあります。https://msdn.microsoft.com/en-us/library/hh478191.aspx – rbrundritt

0

できますか?

Public Sub test(ByVal keywordLocation As String) 

    Dim Key As String = "" 
    Dim searchRequest As New SearchRequest 

    'credentials 
    searchRequest.Credentials = New SearchService.Credentials() 
    searchRequest.Credentials.ApplicationId = Key 

    ' Create the search query 
    Dim ssQuery As New StructuredSearchQuery 
    Dim parts As String() = keywordLocation.Split(";") 

    ssQuery.Keyword = parts(0) 
    ssQuery.Location = parts(1) 
    searchRequest.StructuredQuery = ssQuery 


    Dim searchService As New SearchServiceClient 
    Dim SearchResponse As SearchResponse = searchService.Search(searchRequest) 

    If SearchResponse.ResultSets(0).Results.Length > 0 Then 

     Dim lstName As New ArrayList 
     Dim lstAddress As New ArrayList 


      lstName.Add(SearchResponse.ResultSets(0).Results(i).Name) 
      lstAddress.Add(SearchResponse.ResultSets(0).Results(i).LocationData) 



    End If 

End Sub 

End Class 
関連する問題