使用 VB.Net 和 Bing 地图搜索时显示超过 10 个结果
Display more than 10 results when searching using VB.Net and Bing Maps
我创建了一个 vb.net 代码,引用了 Microsoft 的以下 link。
https://msdn.microsoft.com/en-us/library/dd221354.aspx
在 say New York 搜索 say pizza 时,有没有办法获得 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
你能做到吗?
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
您似乎在使用旧版 Bing Maps SOAP 服务。通过设置计数选项,您可以使用搜索服务 return 最多 25 个结果:
searchRequest.SearchOptions = new SearchService.SearchOptions();
searchRequest.SearchOptions.Count = 25;
无法选择 return 查询 "where" 组件的地址。但是,您可以查看已解析的查询值,它可能会提供您需要的信息。如果您想要一个中心坐标,您可以对该信息进行地理编码。
综上所述,Bing Maps Soap 服务的生命周期即将结束,将于 2017 年 6 月底弃用。这些服务已被 Bing Maps REST 服务取代约 6几年前。但是,没有提供对兴趣点和企业列表的自由形式查询的服务。有一项单独的服务,您可以在其中搜索进行附近搜索的数据源并根据类别进行过滤。您将首先对查询的 "where" 部分进行地理编码,然后使用其坐标对附近的兴趣点进行径向搜索。这里有一些有用的资源:
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 空间数据服务的 .NET 工具包,但很快就会有。
我创建了一个 vb.net 代码,引用了 Microsoft 的以下 link。 https://msdn.microsoft.com/en-us/library/dd221354.aspx
在 say New York 搜索 say pizza 时,有没有办法获得 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
你能做到吗?
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
您似乎在使用旧版 Bing Maps SOAP 服务。通过设置计数选项,您可以使用搜索服务 return 最多 25 个结果:
searchRequest.SearchOptions = new SearchService.SearchOptions();
searchRequest.SearchOptions.Count = 25;
无法选择 return 查询 "where" 组件的地址。但是,您可以查看已解析的查询值,它可能会提供您需要的信息。如果您想要一个中心坐标,您可以对该信息进行地理编码。
综上所述,Bing Maps Soap 服务的生命周期即将结束,将于 2017 年 6 月底弃用。这些服务已被 Bing Maps REST 服务取代约 6几年前。但是,没有提供对兴趣点和企业列表的自由形式查询的服务。有一项单独的服务,您可以在其中搜索进行附近搜索的数据源并根据类别进行过滤。您将首先对查询的 "where" 部分进行地理编码,然后使用其坐标对附近的兴趣点进行径向搜索。这里有一些有用的资源:
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 空间数据服务的 .NET 工具包,但很快就会有。