I need to create some map tiles for open street map.
I want them based on OS maps but I want to edit a particular section of the map in photoshop.
I have looked at mobile atlas creator (MOBAC) and can generate tile from the OS maps, but what I want to do is update the main map image first, then generate the tiles with my updates.
I don't think it's possible to do this with MOBAC so can anyone point me in the right direction of what I need to do?
Thanks Bex
I have not heard about MOBAC, but there is a company called CloudMade.
They provide different services around OpenStreetMap data. One of their service is Style Editor:
http://developers.cloudmade.com/projects/show/style-editor
You can create your own style of tiles, i.e. show/hide POIs, change colors for different types of roads, rivers and so on.
Is it what you need?
Finally found a way, use oziexplore to calibrate an image (or a map) and then load the .map file into Mapc2Mapc then generate the tiles in adnav format. Unfortunately then I need to rename all my tiles so they end in .tile rather than .adnav for the default version of OSMDroid.
Related
i have three files that i should use for a GIS application:
map.aux, map.tfw, map.tif
The .tif file is a "layer" that highlights some building over a map. These files are georeferenced to specific coordinates.
How can i bring these informations (and "image") on a layer of Google Maps? Any idea? Thank you!
I can't give you code since I've never tested, but the following should work:
You can use the ground overlay object coming from Gmaps:
https://developers.google.com/android/reference/com/google/android/gms/maps/model/GroundOverlay
It allows you specify an image in format of "BitmapDescriptor" and eventually anchor and bearing of the given tif.
The good for you is that, if you've already georefenced the file and it is in the default Google Maps projection (900913 or 3857, Mercator) you don't need to rotate data. Just take out the position of the raster from aux/tfw files (there should be a line specifying the topleft coordinate for the raster and the size of it; from those lines you should be able with some math to get the LatLng bounds needed to initialize the groundOverlay.
The only part I'm not sure is easy is to create a BitmapDescriptor from a tiff. If this is not easy or impossible, just reconvert the tif to png, that will possible to read and put in a BitmapDescriptor.
Maybe is not the code for you question, but at least a starting point!
With R you can do
library(raster)
r <- raster('map.tif')
KML(r, 'map.kml')
open the .kml file in Google earth.
See package plotKML for more advanced options
As the title, i want to know if there are any way to custom the map tiles with Skobbler.
Ex:
load my own tiles instead of default tile
load only tiles on defined
range
I checked the api document but it seem doesn't help! Could you help to give some hint!
This will not be possible.
The SDK uses a proprietary vector tile format (.skm) - one would have to convert their map data to this format before they are usable by the Scout SDK.
Overlaying images/tiles from an external source on top of the map is also not currently available (it's a request on the "wish list")
For example, for some reason I only want a map of United States with state borders but without state names or city names. I can find such a map online(an image file), and want it to be the map in my application. But I still want the ability to get geolocation data(latitude, longitude) when the user taps somewhere on the map. Is it possible to do that? If so, where should I start? Could anyone suggest some resources?
If you create your own tiles yes it can be done with Tile Overlay
https://developers.google.com/maps/documentation/android/tileoverlay
Does anyone know how to:
1) make the Google map not zoom-able? make it so it is at a fixed zoom size and the user cannot change it?
2) have the map API load a picture of my choosing and overlay the little blue dot of the user's current location over it?
Here is what I want to do, I'm want to have a custom picture of the world (that i have created in Photoshop or w/e, it will be .jpeg, .png, or whatever file format will work) the picture of the world will be 'artsy' and I just want the Google maps to overlay the little blue dot of where you are in the world. For example, if you are in New York, NY, you will see the picture of the world with the blue dot over what on the picture is New York.
Any help will be greatly appreciated, Thanks
You should be able to control the map as follows:
map = (MapView) findViewById(R.id.mapview);
map.setBuiltInZoomControls(false);
As for overlaying an image, you'll need to create an image layout file (in XML) and then inflate that over the top of the map. This tutorial shows you the basics of inflating a layout and adding it to an existing view:
http://www.mysamplecode.com/2011/10/android-dynamic-layout-using-xml-add.html
To position the inflated layout (your image), you will need to use LayoutParams (http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html) to set the position of the new view on to the map.
Hope that helps.
Regarding you second question: it sounds like you actually want to replace the Google Maps tiles by images you've created yourself. As far as I know, that's not possible with the Maps API. You can potentially hack something together by adding your own creation as overlay to the map, but that may not give your the results you're looking for, especially if you want the user to still be able to pan/drag the map around.
In stead, you might want to take a look at the osmdroid (Open Street Maps for Android) project. They do support loading in your own tiles via the ModularTileProviderArchitecture. It'll probably give you more freedom and flexibility, but might be overkill for what you're after.
I know that OSM is hip and cool, but the OP asked about Google maps — and the question is readily answered in the Google Maps API documentation (https://developers.google.com/maps/documentation/javascript/).
The Google Maps API has supported custom maps for years. I think you can edit their first "ImageMapType" (https://developers.google.com/maps/documentation/javascript/maptypes#CustomMapTypes) example to solve your problem.
In your case, you would set the "maxZoom" and "minZoom" fields to whatever zoom you want to create artwork for. Use the "mapOptions" dictionary to take away the zoom control. You'll need to cut your artwork into tiles, and replace their "getTileUrl" function with one that returns your tiled image.
To explain my problem, I am going to start from a case study that is not what I have to do but which will give you a good idea of what I am talking about.
Imagine the map of the US in which you have the states / provinces. Each of these provinces has got a shape that is random (by random I mean it is not a rectangle, a triangle or a circle). I need to build these shapes independantly, size them correctly and put them at the correct place on the screen to represent the country. Finally, each of these province should be clickable.
To achieve that :
1) I don't want to use google map
2) I guess that I'll have to construct each provine using android path and android region ... can you confirm?
3) Is there a graphical tool for building these paths (photoshop import ?)
4) Assuming that I succeed to build the path, how can I put them at the correct place on the screen ?
5) How can I make these path clickable ?
Basically, I want to build an interactive map with clickable items that doesn't use Google map because it won't necessarly be a real map.
Thanks for your help,
R.
There are lot of variables in the problem you describe:
If you don't want to use google-maps, you'll need to use another engine. There are a few open-source ones available.
If you feel you don't need a map engine, you'll need to provide you're own image of the US to draw on an pin the image to the View
How do you plan to draw the boundaries? Do you have coordinate data for the boundaries or do you plan to draw them manually.
I would suggest first looking at openstreetmap: http://www.openstreetmap.org/ The have a lot of information and tools on creating Maps. From there you can attack adding to the phone. Or you can use their web api and build a web view for doing what you suggest.