Is it possible to place a grid in Nokia maps?

拟墨画扇 提交于 2020-01-07 06:27:41

问题


Im using nokia maps javascript api, is posible place a grid in the map?


回答1:


The easiest way to do this would be to use a transparent grid PNG as an overlay.

First create a 256x256 PNG file as shown below.

Then use that as your getTileUrl() function, so it is returned over all of the Map tiles on the map.

var getTileUrl = function (zoom, row, column) {            
       return "http://i.stack.imgur.com/M1ncK.png";
};

The result is something like this:

An example can be seen below, with your own PNG file, app id and token of course .

    /*  Set authentication token and appid 
    *
    *   please register on http://api.developer.nokia.com/ 
    *   and obtain your own developer's API key 
    */
    nokia.Settings.set("appId", "MY APP ID"); 
    nokia.Settings.set("authenticationToken", "MY 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.515, 13.405],
        	zoomLevel: 14,
        	components: [
        		// ZoomBar provides a 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()
        	]
        });
        var getTileUrl = function (zoom, row, column) {
        
        		return "http://i.stack.imgur.com/M1ncK.png";
        	};
        
        	tileProviderOptions = {
        		getUrl: getTileUrl, // Obligatory function
        		max:20, // The highest zoom level for the overlay.
        		min:1, // The lowest zoom level for the overlay.
        		opacity: 0.5, // Overlay opacity.0 is fully transparent, 1 is fully opaque.
        		alpha:true // This value tells the renderer to read the alpha channel; required if opacity is used.
        	},
        	// Create an overlay by calling the constructor for ImgTileProvider
        	gridOverlay = new nokia.maps.map.provider.ImgTileProvider(tileProviderOptions);
        	
        // Add the overlay to the map
        map.overlays.add(gridOverlay);
html {
        				overflow:hidden;
        			}
        			
        			body {
        				margin: 0;
        				padding: 0;
        				overflow: hidden;
        				width: 100%;
        				height: 100%;
        				position: absolute;
        			}
        			
        			#mapContainer {
        				width: 100%;
        				height: 100%;
        				left: 0;
        				top: 0;
        				position: absolute;
        			}
        <!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>
        		<meta http-equiv="X-UA-Compatible" content="IE=7; IE=EmulateIE9; IE=EmulateIE10;"/>
        		<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        		<title>Nokia Maps Example: Adding an overlay to the map</title>
        		<script type="text/javascript" charset="UTF-8" src="http://api.maps.nokia.com/2.2.4/jsl.js?with=all"></script>
        		<style type="text/css">
        			
        		</style>
        	</head>
        	<body>
        		<div id="mapContainer"></div>
        		<div id="uiContainer"></div>

        	</body>
        </html>


来源:https://stackoverflow.com/questions/15799333/is-it-possible-to-place-a-grid-in-nokia-maps

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!