LocationMapViewer

From OpenStreetMap Wiki
Jump to navigation Jump to search
LocationMapViewer
LocationMapViewer-Teneriffa-noncluster-bubble.png
Author: klaus3b (k3b)
License: GNU General Public License (free of charge)
Platform: Android 4.1+
Version: 0.3.8.210702 (2021-04-24)
Languages: German and English
Website: https://github.com/k3b/LocationMapViewer/wiki
Install:
Source code: https://github.com/k3b/LocationMapViewer
Programming language: Java

A serviceprovider that allows other apps to show "points of interest" in a map through a simple intent-api.

A serviceprovider that allows other apps to show "points of interest" in a map through a simple intent-api.

Features

Example Usage

This android java code will show a map with 3 markers:

        Intent mapIntent = new Intent();
		
		// we want to view the map
        mapIntent.setAction(Intent.ACTION_VIEW);

		// this will be shown as primary marker in the map
		// the coordinate 53.2,8.8 is in north germany where the map is centered around
		// z=1 means zoomlevel=1 showing the continent
		// the marker's caption will be "primary marker"
        Uri uri = Uri.parse("geo:53.2,8.8?q=(primary+marker)&z=1");
        mapIntent.setDataAndType(uri, null);
		
		// this is the maps Caption
        mapIntent.putExtra(Intent.EXTRA_TITLE, "Hello Map");
		
		// the map will contain 2 additional point of interest
        mapIntent.putExtra("de.k3b.POIS",
                  "<poi ll='53.1,8.9'/>\n" +
                  "<poi ll='53.3,8.7' n='Say Hello' \n" +
                        " link='https://github.com/k3b/LocationMapViewer/' \n" +
                        " d='This will be shown as a Marker. When clicking on the marker you " + 
						"get this text and a link to LocationMapViewer' />");

        try {
            startActivityForResult(Intent.createChooser(mapIntent,"Choose app to show location"), 4711);
        } catch (Exception e) {
            e.printStackTrace();
        }

GeoIntentDemoActivity.java is the sourcecode of a complete android demo app that uses LocationMapViewer (or any other provider that supports "geo:" uris)

Minimal requirements:

  • Android-2.3.7 - Android-7 (API 10ff) for version v0.3.5.170911(6)
  • Android-4.1 and later (API 16ff) for version v0.3.7.210429
  • internet/wifi-connection to download geodata and a SD-Card to cache geodata

Requred permissions:

  • INTERNET: to download map data from Open Streetmap Server
  • ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE: to find out if wifi/internet is online to start downloading mapdata
  • WRITE_EXTERNAL_STORAGE
    • to cache downloaded map data in local file system
    • to load gpx/kml-Files to be displayed in the map
  • ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION: to display my own location in the map

Note: the app that uses LocationMapViewer via the intent api does not need these permissions.

Resources

LocationMapViewer is based on the libraries