Namespaces
Variants
Actions
Revision as of 18:59, 5 January 2012 by jasfox (Talk | contribs)

HERE Maps API - How to find the nearest Marker

Jump to: navigation, search
Article Metadata

Code Example
Compatibility
Platform(s): Web Browser

Article
Created: Maveric (13 Nov 2011)
Last edited: jasfox (05 Jan 2012)


This article explains how to find the nearest Marker on the map.

Contents

Introduction

This example will demonstrate how to find the nearest map Marker from any point on the map. In the example there are five Markers on Nokia Maps and you can click anywhere on the map. Based on where you clicked, the script will calculate the distance to the Marker that is located closest to the point of your click. To display the result, the label text of the Marker is retrieved and shown on the page.


Summary

This method is useful when you need to determine which of the Markers are located close to e.g. the user's current position.


Example code

After setting up five markers, the code continues by adding a click event to the map.

var eventTarget = nokia.maps.dom.EventTarget;        
var eventCheck = document.getElementById("map");
eventTarget(eventCheck);
eventCheck.addListener("click", function(evt)
{ var coords = map.pixelToGeo(evt.targetX , evt.targetY);
findNearestMarker (coords);
}, false);

The findNearestMarker function iterates through each marker on the map and calculates the distance. The lowest distance so far is kept.

function findNearestMarker(coords) { 
var minDist = 1000;
var nearest_text = "*None*";
for (i=0; i< map.objects.getLength(); i++)
{
if ( map.objects.get(i) instanceof nokia.maps.map.StandardMarker ) {
var markerDist = map.objects.get(i).coordinate.distance(coords);
if (markerDist < minDist) {
minDist = markerDist;
nearest_text = map.objects.get(i).text
}
}
}
 
alert (nearest_text);
}

Screenshot

The fully coded example can be found here : Media:NearestMarkerExample.zip

NearestMarkerExample..png


Tested with

Firefox 7.0.1

272 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved