Question

using nokia maps "nokia.places.search.manager.findPlaces" i get upto 20 place search results. how get more results?

my nokia function:

nokia.places.search.manager.findPlaces({ searchTerm: term, searchCenter: searchCenterN, didYouMean: 5 });

Was it helpful?

Solution

It looks like your best bet at the moment would be to use the limit parameter as shown. The default is 20 places, but it can be extended to 100.

 searchManager.findPlacesByCategory({
        category: category,
        onComplete: processResults,
        searchCenter: searchCenter,
        limit: 50,
    });

There is also a next URI buried in the result set, which accesses the RESTful Places API, but there doesn't appear to be any public function for processing that data yet in the 2.2.3 API.

Here is a fully working example based on the API Explorer example: http://developer.here.net/apiexplorer/examples/api-for-js/places-search/places-search-by-category.html

You need to obtain your own free app id and token to get it to work.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- 
    Example from Nokia Maps API Playground, for more information visit http://api.maps.nokia.com
 -->
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=7; IE=EmulateIE9"/>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        <title>Nokia Maps API Example: Search by category</title>
        <meta name="description" content="Search by category"/>
        <meta name="keywords" content="search, services, places, category"/>
        <!-- For scaling content for mobile devices, setting the viewport to the width of the device-->
        <meta name=viewport content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
        <!-- By default we add ?with=all to load every package available, it's better to change this parameter to your use case. Options ?with=maps|positioning|places|placesdata|directions|datarendering|all -->
        <script type="text/javascript" charset="UTF-8" src="http://api.maps.nokia.com/2.2.3/jsl.js?with=all"></script>
        <!-- JavaScript for example container (NoteContainer & Logger)  -->
        <style type="text/css">
            html {
                overflow:hidden;
            }

            body {
                margin: 0;
                padding: 0;
                overflow: hidden;
                width: 100%;
                height: 100%;
                position: absolute;
            }

            #mapContainer {
                width: 80%;
                height: 80%;
                left: 0;
                top: 0;
                position: absolute;
            }
            #progress {
                width: 80%;
                height: 10%;
                left: 0;
                top: 80%;
                position: absolute;
            }
            #buttons {
                width: 80%;
                height: 10%;
                left: 0;
                top: 90%;
                position: absolute;
            }
        </style>
    </head>
    <body>
        <div id="mapContainer"></div>
        <div id="progress"></div>
        <div id="buttons">
        <a onClick="search1();return false;" href="#">Find 20 Places</a> 
        <a onClick="search2();return false;" href="#">Find 50 Places</a> 
        </div>
        <script type="text/javascript" id="exampleJsSource">
/*  Set authentication token and appid 
*   WARNING: this is a demo-only key
*   please register on http://api.developer.nokia.com/ 
*   and obtain your own developer's API key 
*/
nokia.Settings.set("appId", "YOUR APP ID"); 
nokia.Settings.set("authenticationToken", "YOUR TOKEN");


// Get the DOM node to which we will append the map
var mapContainer = document.getElementById("mapContainer");
// Create a map inside the map container DOM node
var map = new nokia.maps.map.Display(mapContainer, {
    // Initial center and zoom level of the map
    center: [52.51, 13.4],
    zoomLevel: 10,
    components: [       
        new nokia.maps.map.component.Behavior()
    ]
});

var searchCenter = new nokia.maps.geo.Coordinate(52.51, 13.4),
    searchManager = nokia.places.search.manager,
    resultSet;


var resultDataJF;   

// Function for receiving search results from places search and process them
var processResults = function (data, requestStatus, requestId) {
    var i, len, locations, marker;

    resultDataJF = data;
    if (requestStatus == "OK") {
        // The function findPlaces() and reverseGeoCode() of  return results in slightly different formats
        locations = data.results ? data.results.items : [data.location];
        // We check that at least one location has been found
        if (locations.length > 0) {
            // Remove results from previous search from the map
            if (resultSet) map.objects.remove(resultSet);
            // Convert all found locations into a set of markers
            resultSet = new nokia.maps.map.Container();
            for (i = 0, len = locations.length; i < len; i++) {
                marker = new nokia.maps.map.StandardMarker(locations[i].position, { text: i+1 });
                resultSet.objects.add(marker);
            }
            // Next we add the marker(s) to the map's object collection so they will be rendered onto the map
            map.objects.add(resultSet);
            // We zoom the map to a view that encapsulates all the markers into map's viewport
            map.zoomTo(resultSet.getBoundingBox(), false);
        } else { 
            alert("Your search produced no results!");
        }
    } else {
        alert("The search request failed");
    }
};



// Binding of DOM elements to several variables so we can install event handlers.
var progressUiElt = document.getElementById("progress");


 search1 = function(){
// Make a place search request
var category = "eat-drink";
progressUiElt.innerHTML = "Looking for places in the '" + category + "' category...'";
searchManager.findPlacesByCategory({
    category: category,
    onComplete: processResults,
    searchCenter: searchCenter
});
}


search2 = function(){
// Make a place search request
var category = "eat-drink";
progressUiElt.innerHTML = "Looking for places in the '" + category + "' category...'";
searchManager.findPlacesByCategory({
    category: category,
    onComplete: processResults,
    searchCenter: searchCenter,
    limit: 50,
});
}


        </script>
    </body>
</html>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top