×
Namespaces

Variants
Actions
(Difference between revisions)

Change Marker based on zoom level in HERE Maps

From Nokia Developer Wiki
Jump to: navigation, search
jackdenial (Talk | contribs)
(Jackdenial -)
chintandave_er (Talk | contribs)
(Chintandave er - added articlemeta tag and Abstract)
Line 1: Line 1:
 
[[Category:Code Examples]][[Category:Code Snippet]][[Category:Nokia Maps]]
 
[[Category:Code Examples]][[Category:Code Snippet]][[Category:Nokia Maps]]
==Introduction==
+
{{Abstract|Sometimes, we want to show a number of markers on the map world wide. But when the user zooms in or zooms out the markers get distorted, we want them to be smaller or may be we want the markers to be changed if a user zooms the map at street level. Lets try to write a code for this.].}}
  
Sometimes, we want to show a number of markers on the map world wide. But when the user zooms in or zooms out the markers get distorted, we want them to be smaller or may be we want the markers to be changed if a user zooms the map at street level. Lets try to write a code for this.
+
{{ArticleMetaData
 +
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 +
|devicecompatability= <!-- Compatible devices e.g.: All* (must have internal GPS) -->
 +
|signing=<!-- Signing requirements - empty or one of: Self-Signed, DevCert, Manufacturer -->
 +
|capabilities=<!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
 +
|keywords= Nokia Maps
 +
|id= <!-- Article Id (Knowledge base articles only) -->
 +
|creationdate=20111230
 +
|author= [[User:jackdenial]]
 +
}}
  
 
==Adding Map Observer==
 
==Adding Map Observer==

Revision as of 08:57, 2 January 2012

Sometimes, we want to show a number of markers on the map world wide. But when the user zooms in or zooms out the markers get distorted, we want them to be smaller or may be we want the markers to be changed if a user zooms the map at street level. Lets try to write a code for this.].

Article Metadata
Article
Keywords: Nokia Maps
Created: jackdenial (30 Dec 2011)
Last edited: chintandave_er (02 Jan 2012)

Adding Map Observer

In this code snippet, we are adding "zoomLevel" property of the map to monitor the zoom and we will change the marker accordingly.

// Get the DOM node to which we will append the map
var mapContainer = document.getElementById("mapContainer");
var map = new nokia.maps.map.Display(mapContainer, {
// Initial center and zoom level of the map
center: [52.51, 13.4],
zoomLevel: 3,
components: [
// ZoomBar provides an UI to zoom the map in & out
new nokia.maps.map.component.ZoomBar(),
// We add the behavior component to allow panning / zooming of the map
new nokia.maps.map.component.Behavior(),
// Creates UI to easily switch between street map satellite and terrain mapview modes
new nokia.maps.map.component.TypeSelector()
]
});
 
var la=52.51;
var lo=13.4;
var standardMarker = new nokia.maps.map.StandardMarker(new nokia.maps.geo.Coordinate(parseFloat(la), parseFloat(lo)));
var standardMarkerProps = [
{
text: "42",
brush: {
color: "#F80"
}
}];
 
map.objects.add(standardMarker);
 
var arrColor = ["#0C0101","#220202","#320303","#410505","#520707","#640909","#7A0C0C","#910F0F","#AB0E0E","#D21313","#FC1111","#9DA008","#F4F80E","#0EF82A","#6ADB78","#0C0101","#220202","#320303","#410505","#520707","#640909","#AB0E0E","#D21313","#FC1111","#9DA008"];
 
map.addObserver("zoomLevel",function(){
map.objects.clear();
standardMarkerProps[0].text = map.zoomLevel;
standardMarkerProps[0].brush.color = arrColor[map.zoomLevel];
map.objects.add(new nokia.maps.map.StandardMarker(
new nokia.maps.geo.Coordinate(parseFloat(la), parseFloat(lo)),
standardMarkerProps[0]
));
});

Output

The output of the above code would look like below screenshot. Whenever you double click the map it will zoom in and the marker will show zoomLevel in the balloon and it's color will also get changed accordingly.

ZoomLevel.jpg

294 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×