2016-12-20 1 views
1

J'ai créé un code vb.net faisant référence au lien ci-dessous de Microsoft. https://msdn.microsoft.com/en-us/library/dd221354.aspxAfficher plus de 10 résultats lors de la recherche en utilisant VB.Net et Bing Maps

Existe-t-il un moyen d'obtenir plus de 10 résultats lors de la recherche de say pizza à New York? Si je recherche une pizza à New York, je reçois seulement un résultat de 10 endroits. Comment puis-je les obtenir tous? Aussi est-il possible d'obtenir l'adresse avec dans la demande? Voici mon code.

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

J'ai trouvé l'adresse. lstAddress.Add (DirectCast (SearchResponse.ResultSets (0) .Results (0), Bing.SearchService.BusinessSearchResult) .Address.FormattedAddress) comment puis-je obtenir plus de 10 résultats? – CodeMonger

+0

Im pas trop familier avec les cartes Bing, mais basé sur le lien que vous avez fourni, je vois la réponse dans votre question. peut être? –

+0

Je comprends ce que vous voulez dire maintenant que vous voulez afficher plus de 10 résultats et que votre code ci-dessus fonctionne, ai-je raison? –

Répondre

0

Il semble que vous utilisiez les services SOAP de Bing Maps hérités. Vous pouvez revenir jusqu'à 25 résultats avec le service de recherche en définissant l'option Count:

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

Il n'y a pas possibilité d'avoir l'adresse du « où » composante de la requête a retourné. Cependant, vous pouvez regarder la valeur de la requête analysée et cela peut fournir les informations dont vous avez besoin. Vous pouvez géocoder cette information si vous voulez une coordonnée centrale. Cela dit, les services de savon de Bing Maps arrivent en fin de vie et deviendront obsolètes à la fin du mois de juin 2017. Ces services ont été remplacés par les services REST de Bing Maps il y a environ 6 ans. Cependant, il n'y a aucun service qui fournit des requêtes de forme libre pour les points d'intérêt et les listes d'entreprises. Il existe un service distinct où vous pouvez effectuer une recherche sur des sources de données effectuant des recherches à proximité et filtrer en fonction de la catégorie. Vous devez d'abord géocoder la partie "où" de la requête, puis utiliser ses coordonnées pour effectuer une recherche radiale des points d'intérêt à proximité. Voici quelques ressources utiles à ce sujet:

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 (montre comment utiliser les services de données spatiales Bing .NET)

Actuellement, il n'y a pas une boîte à outils .NET pour les services de données spatiales Bing, mais leur sera bientôt.

+0

Merci bien y at-il un moyen d'obtenir tous les magasins de pizza à New York de bing? – CodeMonger

+0

En regardant à travers les catégories de POI, il n'y en a pas pour les pizzas, seulement les restaurants: https://msdn.microsoft.com/fr-fr/library/hh478191.aspx – rbrundritt

0

pouvez-vous s'il vous plaît faire cela.

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