使用vb.net和bing地图搜索时显示10多个结果



我创建了一个从Microsoft引用下面链接的VB.NET代码。https://msdn.microsoft.com/en-us/library/dd221354.aspx

在纽约说披萨时,有没有办法获得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

看起来您正在使用传统bing Maps SOAP服务。通过设置计数选项,您可以使用搜索服务返回25个结果:

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

没有选项可以拥有返回查询的" wory"组件的地址。但是,您可以查看解析的查询值,并且可以提供所需的信息。如果需要中心坐标,则可以地理编码。

这都说,Bing Maps Soap Services即将结束生命的尽头,并将在2017年6月底进行弃用。这些服务由大约6年前的Bing Maps Rest Services取代。但是,没有服务可为兴趣点和业务清单提供免费的表单查询。有一个单独的服务,您可以在其中搜索数据源,并根据类别进行过滤附近的搜索和过滤。您将首先地理位置查询部分的"位置"部分,然后使用其坐标进行径向搜索以寻找附近的兴趣点。以下是一些有用的资源:

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-with-bcb17045?redir=0(显示了如何在.NET中使用Bing空间数据服务)

当前没有用于Bing空间数据服务的.NET工具包,但它们很快就会成为一个。

你能做到这个。

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

最新更新