×
Namespaces

Variants
Actions
(Difference between revisions)

HERE Maps API - get the geocoordinates when user clicks mouse over the map

From Nokia Developer Wiki
Jump to: navigation, search
jasfox (Talk | contribs)
m (Jasfox - Add link.)
jasfox (Talk | contribs)
m (Jasfox - Updated example to use Nokia Maps API 2.2)
Line 30: Line 30:
 
{{Abstract|This article shows how to get the geolocation behind user's mouse click over the map component.}}
 
{{Abstract|This article shows how to get the geolocation behind user's mouse click over the map component.}}
  
The code example calls the getMouseXY function when the user clicks on the map. Note the different behaviour in case of Internet Explorer browser and other browser.
+
The code example sets up an Event Listener on the "click" event of the Map Display. The x and y pixel values are extracted from'' evt.displayX'' and ''evt.displayY''  and converted to Geocoordinates.
 
+
 
<code javascript>
 
<code javascript>
 +
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 +
<html xmlns="http://www.w3.org/1999/xhtml">
 +
    <head>
 +
      <title>Get Geocoordinates on Click</title>
 +
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 +
      <script type="text/javascript"
 +
            src="http://api.maps.nokia.com/2.2.0/jsl.js" charset="utf-8">
 +
        </script>
 +
    </head>
 +
    <body>
  
//Define the map component e.g. in style of this
+
        <div id="mapContainer" style="z-index: -1; left:0px; top:0px; width: 100%; height: 80%; position: absolute;"></div>
 +
        <script type="text/javascript">
 +
/////////////////////////////////////////////////////////////////////////////////////
 +
// Don't forget to set your API credentials
 
//
 
//
// HTML file
+
// Replace with your appId and token which you can obtain when you
 +
// register on http://api.developer.nokia.com/
 
//
 
//
...
+
nokia.Settings.set( "appId", "YOUR APP ID GOES HERE");  
<script type="text/javascript"src="http://api.maps.nokia.com/2.0.0/jsl.js" charset="utf-8"></script>
+
nokia.Settings.set( "authenticationToken", "YOUR AUTHENTICATION TOKEN GOES HERE");
</head>
+
<body onload="init()">
+
<center>
+
<div id="map" style="width:640px; height:360px;"></div>
+
...
+
//
+
// JavaScript file
+
//
+
...
+
function init(){
+
...
+
// Prepare to record all mouse movements
+
IE = document.all?true:false;
+
if (!IE) document.captureEvents(Event.MOUSEMOVE)
+
document.onmousemove = getMouseXY;
+
// with the above
+
...
+
+
map = new nokia.maps.map.Display(document.getElementById("map"),  
+
{
+
  components: [ new nokia.maps.map.component.Behavior(),
+
                new nokia.maps.map.component.ZoomBar(),
+
                new nokia.maps.map.component.Overview(),                           
+
                new nokia.maps.map.component.TypeSelector(),   
+
                new nokia.maps.map.component.ScaleBar() ],
+
  zoomLevel: 3,
+
                                  eventListener: myListener,
+
  center: [52.51, 13.4]  // default map center point (not the location retrieved)
+
+
});
+
...
+
+
// Grab the user mouse x and y coordinates
+
+
...
+
function getMouseXY(e) {
+
if (IE) { // grab the x-y pos.s if browser is IE
+
tempX = event.clientX + document.body.scrollLeft;
+
tempY = event.clientY + document.body.scrollTop;
+
}
+
else {  // grab the x-y pos.s if browser is NS
+
tempX = e.pageX;
+
tempY = e.pageY;
+
+
if (tempX < 0){tempX = 0;}
+
if (tempY < 0){tempY = 0;} 
+
return true;
+
}
+
+
...
+
+
// Alert the user what is the geolocation of that screen coordinate
+
+
alert(map.pixelToGeo(tempX, tempY));
+
  
...
+
//
 +
/////////////////////////////////////////////////////////////////////////////////////
 +
 
 +
// 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.ZoomBar(),
 +
new nokia.maps.map.component.Behavior(),
 +
new nokia.maps.map.component.TypeSelector()
 +
]
 +
});
 +
 
 +
 
 +
/* Attach an event listener to map display
 +
* push info bubble with coordinate information to map
 +
*/
 +
map.addListener("click", function (evt) {
 +
var coord = map.pixelToGeo(evt.displayX, evt.displayY);
 +
 
 +
alert("Clicked at " + coord);
 +
});
 +
 +
</script>
 +
</body>
 +
</html>
 
   
 
   
 
 
</code>
 
</code>
  

Revision as of 16:54, 13 April 2012

Article Metadata
Dependencies: Nokia Maps 2.1.0
Article
Created: Maveric (31 Dec 2010)
Last edited: jasfox (13 Apr 2012)

This article shows how to get the geolocation behind user's mouse click over the map component.

The code example sets up an Event Listener on the "click" event of the Map Display. The x and y pixel values are extracted from evt.displayX and evt.displayY and converted to Geocoordinates.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Get Geocoordinates on Click</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript"
src="http://api.maps.nokia.com/2.2.0/jsl.js" charset="utf-8">
</script>
</head>
<body>
 
<div id="mapContainer" style="z-index: -1; left:0px; top:0px; width: 100%; height: 80%; position: absolute;"></div>
<script type="text/javascript">
/////////////////////////////////////////////////////////////////////////////////////
// Don't forget to set your API credentials
//
// Replace with your appId and token which you can obtain when you
// register on http://api.developer.nokia.com/
//
nokia.Settings.set( "appId", "YOUR APP ID GOES HERE");
nokia.Settings.set( "authenticationToken", "YOUR AUTHENTICATION TOKEN GOES HERE");
 
//
/////////////////////////////////////////////////////////////////////////////////////
 
// 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.ZoomBar(),
new nokia.maps.map.component.Behavior(),
new nokia.maps.map.component.TypeSelector()
]
});
 
 
/* Attach an event listener to map display
* push info bubble with coordinate information to map
*/

map.addListener("click", function (evt) {
var coord = map.pixelToGeo(evt.displayX, evt.displayY);
 
alert("Clicked at " + coord);
});
 
</script>
</body>
</html>


Example alert window

Geocoordinatesmouseclick.png

233 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.

×