Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Map-ity Open Street Map data for Unity - Official

Discussion in 'Assets and Asset Store' started by RewindGameStudio, Oct 21, 2013.

  1. santadiego

    santadiego

    Joined:
    Aug 31, 2014
    Posts:
    23
    upload_2014-10-21_15-9-57.png
    you can see the lat, long, zoom level are not getting updated from WC.
    what am I doing wrong?
    its OK now, takes quite a while to "find" WC.
    perhaps when I toggled mobile it sensed WC?
     
    Last edited: Oct 21, 2014
  2. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Glad it's working. It's not exactly easy to detect another code asset ;)
    Think it's best to have world composer window open first, then add Map-ity.
     
  3. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Also to get them to line up you'll want to change the "World to Unity scale"

    Zoom level is more related to how much data you get.
     
  4. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Just to let you all know, we've started to write a manual for Map-ity. If there is anything you would like to see included please let us know :)
     
    philwinkel likes this.
  5. santadiego

    santadiego

    Joined:
    Aug 31, 2014
    Posts:
    23
    All the options should be documented,
    ie)
    autoload, what are you auto loading?
    what are persistent gizmos?
    what would I use nodes for?

    upload_2014-10-21_16-0-23.png
    why are there lines below the terrain?
    good work :)
     
  6. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    That will be because when you query the data for an area, some ways(roads) and relations( bus route ) which extend beyond the bounds are included so you have complete data for them. The result of this is that those nodes have no terrain to query a height from so they default to height zero.
    We felt this was the best default case as since we don't know the topology of the missing terrain any guess would most likely be wrong.
     
  7. santadiego

    santadiego

    Joined:
    Aug 31, 2014
    Posts:
    23
    when entering username, focus is lost after 1 char
     
  8. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    As programmers we documented everything in the code file but evidently not everyone will open that :) Sorry!
     
  9. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Yes, that's a result of the editor UI redrawing due to the information window displaying to tell you to ensure you enable the account as people were forgetting this step. We'll add it to our bug tracker and see if we can fix it for you.
     
  10. santadiego

    santadiego

    Joined:
    Aug 31, 2014
    Posts:
    23
    I can read your code, write your code, fix your code... not for $15 tho.
    but I think most people buying assets are not programmers,
    you have a link on the asset store to "documentation". it comes up blank. makes one hesitate to purchase.
     
  11. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    That's odd. Our documentation link is working for us. Or are you referring to the main page of the docs being empty?
     
  12. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Bug Hot Fix!
    There is a bug( More an oversight :) ) in the Geonames elevation code. If geonames finds no data it will return a negative error value. We were taking this as a valid height.

    Please change in Version 1.08 lines 1227 and 1228 to the following:
    Code (CSharp):
    1. tempnode.position.geographic.Elevation = ia[count] == -32768 ? 0 : ia[count];
    2. tempnode.position.world.Elevation = ia[count] == -32768 ? 0 : ia[count];
    This will set a no data height to zero, which we feel is more desireable.
     
  13. LuckyTribe

    LuckyTribe

    Joined:
    Oct 21, 2014
    Posts:
    6
    I managed to combine Map-ity with MapNav plugin so MapNav draws image tiles and Map-ity provides OSM data and then I generate 3D houses over the map with BuildR. It works fine in Europe but e.g. in Aisia they're not anymore aligned. I'd like to attach screenshots to visualize this but it doesn't go through spam filter in this forum...
     
    RewindGameStudio likes this.
  14. LuckyTribe

    LuckyTribe

    Joined:
    Oct 21, 2014
    Posts:
    6
    For me even more interesting would be to generate my own map from textures over the map data, but I haven't figured out how to do this. I read this http://wiki.openstreetmap.org/wiki/Waterway about waterways but couldn't understand howto find borders of water areas. Same goes with other areas. Would be actually really cool if you guys like to make another plugin over map-ity for this map creation...

    Another cool feature would be possibility to integrate map-ity with terrain composer. If map-ity would load dynamically while moving and generate terrain runtime with terrain composer it would be great tool for making personalised maps in real world games.

    If anyone can provide me a some simple source/starting point howto start programming this kind of map generation over map-ity it'd be also very much appreciated:)
     
    RewindGameStudio likes this.
  15. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Only 3 days left to get Map-ity at 50% off!
     
  16. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Awesome! We're thinking about implementing map tiles in the future. We've just finished our latest app and the plan is to now spend some time improving Map-ity. We think first on the list will be streaming data.
     
  17. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Doing our documentation tonight. Here's a preview. Hope it's clear.
    upload_2014-10-30_23-11-37.png
     
    LuckyTribe likes this.
  18. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
  19. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    It's great to see this asset being updated still, it could prove very useful soon, are the plugins for buildr and spline/road still being updated as well? I don't know which system suits it well, i got rather awry results myself with supersplines i think - i was wondering if you intended to look at further spline/road solutions. I'm looking at using megashapes for most of my spline/road stuff as of late because it's so well supported, maintained and versatile but i dont know how well it would integrate with this, have you had any insight onto the matter of what systems might work best?
     
    RewindGameStudio likes this.
  20. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Thanks! We plan to keep supporting it for as long as possible, the pace may slow but it won't be forgotten.

    Re: the plugins for BuildR, Super Splines & Road Architect. They are more samples demonstrating how you can use Map-ity with them rather than plugins. Unfortunately as a result most issues with their usage have to be directed to the respective devs.

    We're hoping to get our hands on Easy Roads V3 when their API is available and feed back to them to make our usage easier.

    The thing about choosing a system for buildings roads seems to come down to road intersections. If a system was built in the same way the map data was presented it would probably work the best. i.e. a crossroad is 4 points meeting apposed to 2 roads overlapping.

    Hope this helps!
     
  21. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Welcome to all our new users who purchased during our recent sales!
     
  22. Dbone

    Dbone

    Joined:
    Mar 10, 2014
    Posts:
    56
    Hi! I recently bought Map-ity for it auto-population of buildings and roads functions. I would like to grab real-world data to work with but I would also like to create my own. It looks like Map-ity just grabs coloured vector lines from OSM and interprets them as buildings and roads etc.

    Question is can I draw vector "maps" in Inkscape and have Map-ity layout roads and buildings etc. on them? If not, consider this a feature request!

    Great product, great price.

    Thanks!
     
    RewindGameStudio likes this.
  23. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Hi Dbone,
    Map-ity provides you with access to the map data for any given location. So you can retrieve the roads and buildings for a given area and draw them how you please. You will be given lists of vectors which represent either the path of the road or floor plan of the building. We just use Unity's debug rendering so people can actually see the data we provide. It's up to you how you use it.

    Hope this answers your question, if not let us know :)
     
  24. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Starting to work on Dynamic map loading tonight. Super excited!

    So a couple of questions.

    Do you want a 3x3 grid ( forward_left, forward, forward_right, left, center, right, back_left, back, back_right ) of data surrounding the camera(for example) to be loaded or a cross( forward, back, center, left, right )?

    Would you want all downloaded data to persist or for old data to be deleted?

    We'll post updates and ask more questions as things develop.

    Remember this feature is for you guys!
     
    LuckyTribe likes this.
  25. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    We have converting Unity world coordinates to Geographic lat / lon coordinates for a target object working!

    Which means that based on the targets location we'll be able to request new map data.

    Next we have to get caching and loading of multiple map data objects implemented.

    This new version of Map-ity will probably be Version 2 and will likely include some breaking changes as it will have to be quite different.
     
    hopeful likes this.
  26. LuckyTribe

    LuckyTribe

    Joined:
    Oct 21, 2014
    Posts:
    6
    Great to hear that dynamic map loading is progressing! 3x3 grids would be great.
     
  27. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,182
    I'm just now starting to poke around a bit with Map-ity. I've got BuildR, and I've managed to get the demo going where the two plugins work together. I can use BuildR on the small "Map" and on the "NewYork" map, but the "London" map causes Unity to crash on a memory error. I assume that's because it takes too much memory to construct all of the buildings on the London map.

    So this brings up a few thoughts.

    One: for your demo, if the project is indeed running out of memory, maybe the program could detect this and exit gracefully when memory gets nearly full.

    Two: maybe we could have a built-in mode (no BuildR required) where Map-ity puts cubes (and possibly other polygons if you want to get fancy) on all the building locations that have height data. The cubes would have the rough dimensions/shape of the building floorplan (or fit inside it, at least), and have the height. This would allow a quick basic modeling of a city area by Map-ity, and then those of us using the plugin could follow up by replacing those primitives with models of our own that are approximately the same dimensions.

    If we can have that, it would also be nice if we could specify a material to be used by the cubes.

    I kinda get the feeling we could go a bit further with that, and maybe have some sort of criteria for one type of cube using one material and another using a different material, like, say, going by gradations in height, and cubes of similar material / height each being kept in their own list (skyscraper, midsize building, small biz/residence).

    What do you think?
     
    Last edited: Nov 24, 2014
  28. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,182
    If I understand it correctly, there's also a free project under MIT license that could possibly be adapted by Map-ity to create building meshes from floor outlines and height data: CuHe.
     
  29. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,393
    Latest BuildR appears to break Mapity BuildR Example!

    Assets/BuildRExample/Scripts/BuildingRuntimeScript.cs(15,16): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?

    Assets/BuildRExample/Scripts/BuildingRuntimeScript.cs(16,16): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?

    Assets/BuildRExample/Scripts/BuildingRuntimeScript.cs(17,21): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?

    Assets/BuildRExample/Scripts/BuildingScript.cs(16,16): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?

    Assets/BuildRExample/Scripts/BuildingScript.cs(17,16): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?

    Assets/BuildRExample/Scripts/BuildingScript.cs(18,21): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?
     
  30. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,527
    How I can dl a bigger area than the 5km wide spot? I would want to dl the entire island if possible and store data into the game project, on the hard drive.

    The scale is that each grid square is 10km wide, the small cube is 5km wide. The island itself is imported from world composer and is made of 5x6 terrains tiles of 9466 m wide. The mapity zoom scale is 10 (highest density I believe)

    Ideally It would be cool, if possible, to import and dl data per terrain tile (or possibly with sub tiles) so we can upload stored data as the character move through the world easily. With a function to refresh the stored data when useful.

     
  31. Mikael-Madrid

    Mikael-Madrid

    Joined:
    Nov 2, 2012
    Posts:
    26
    Hello and good evening!
    I've been playing around with this and Buildr and I cant seem to find a way to generate interiors when i build the buildings? Any insight on this? Thanks in advanced.
     
  32. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Hello everyone, very sorry. It appears our email notifications have not been working :( Very very sorry for the lack of replies!
     
  33. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Thank you for the great suggestions. We can look into gracefully exiting, but get the feeling that's a Unity problem which may be unavoidable. They could better handle running out of memory.

    Regarding the buildings, anything to do with this is highly requested but we find the biggest problem is that everyone has different needs so the ideal situation is to provide the basic information which enables everyone to fulfil these needs them selves. But in theory, calculating the bounds of a building and then creating an object, scaling it and placing it within these bounds would probably not be a lot of work.

    We can add it to our list.
     
    hopeful likes this.
  34. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Looks like BuildR has indeed been updated and it's now using namespaces.

    So you'll just need to add the line:

    using BuildRUtil;

    To both the files: BuildingRuntimeScript, BuildingScript.
     
  35. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    What you are requesting would tie in with the dynamic map loading we are currently developing.

    But for now, you can define custom zoom levels.

    Just add what you need to the enum :
    public enum MapZoom
    {
    ZoomLevel_0 = 1, // Approx 217m x 217m
    ZoomLevel_1,
    ZoomLevel_2,
    ZoomLevel_3,
    ZoomLevel_4,
    ZoomLevel_5,
    ZoomLevel_6,
    ZoomLevel_7,
    ZoomLevel_8,
    ZoomLevel_9,
    ZoomLevel_10,
    ZoomLevel_11 = 100,
    ZoomLevel_12 = 500
    }
     
  36. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Your best bet is to ask the author of BuildR for support. We modified his sample code a bit but there is no reason why interiors wouldn't work at runtime.
     
  37. xetiro

    xetiro

    Joined:
    Nov 24, 2013
    Posts:
    4
    Hi!

    I am developing a mobile app where users have to report a status and based on their GPS Location I want to pin a custom symbol on the map. If several users on same location report status, this custom symbols should overlay in a way that creates the effect of density.

    Is the Map-Ity suitable for this kind of task? I mean, can I easily mark the map with custom symbols in specific GPS coordinates?

    Thanks in advance :D
     
  38. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Hi, sorry for the slower than normal reply, Christmas Holidays to blame :)

    Map-ity works by taking a single location from the real world and then converts every point in it's data to a point in Unity's coordinate system. The main problem with this is that it's not a fixed conversion. The results differ based on location.

    i.e. 1 degree = a different number of meters depending on how far from the equator you get.

    This makes it very tricky to convert between real world locations and Unity ones. So while it's possible, it would probably be inaccurate. So far what we've done is to offset from our known location but this isn't ideal.

    So to more accurately answer your question. It's possible to convert the reported locations of other mobile app users to unity locations to display them but you may start to see some inaccuracies.
     
  39. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    1)Dynamic map loading is on the back burner for the moment while we focus on our latest game.
    2) Do you mean rather than a center and size, specify just a boundary? That shouldn't be too much hassle but it may depend on the OSM api used.
    3) You'll need to iterate all the buildings and use there ways to generate a collider that way. Extract each point to use as a vert.
    4) Nothing planned
    5)Can't remember exactly, just tweaked the settings. It may depend on the location as well. Anything in particular you are having issues with?
     
  40. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Perhaps you could use Map-ity's function to convert to Unity positions?

    We're aware of the buildR issue, a namespace has been introduced. I think we listed the fix here but have to Patch the example.

    I don't think OSM provides reiver width, but it's sometimes represented by an area if it's wide enough.
     
  41. jalapen0

    jalapen0

    Joined:
    Feb 20, 2013
    Posts:
    136
    Hello, I am working on a world map with World Composer and Terrain Composer. I've reduced the size of the terrains to a scale of 0.001 (or there abouts). Can I use this asset to create major highways like Interstates in the US and the Autobahn in Germany, on a worldwide scale? I may use streaming at some point, just haven't gotten there yet (if that matters) Here is a test terrain zoomed way out:


     
  42. abeersaqib

    abeersaqib

    Joined:
    Jan 22, 2015
    Posts:
    1
    Assets/BuildRExample/Scripts/BuildingScript.cs(16,16): error CS0246: The type or namespace name `DynamicMeshGenericMultiMaterialMesh' could not be found. Are you missing a using directive or an assembly reference?

    I am getting this error how can I resolve it ?
    also How to use your Plugin with WorldComposer
     
  43. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Hello. Right now we support unfiltered grabs of data. So in your use case that would be far more than needed and would be a massive download. Streaming isn't implemented at the moment either. A more typical use case is grabbing all data for a small localized area.
     
  44. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Hi,

    BuildR was updated recently and has moved those classes into a namespace.

    So you just need to add the line:

    using BuildRUtil;

    To both the files: BuildingRuntimeScript, BuildingScript.
     
  45. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    Latest version submitted to store which includes the BuildR namespace fix and the geonames fix.
     
    blueivy and hopeful like this.
  46. ZeoWorks

    ZeoWorks

    Joined:
    Dec 13, 2012
    Posts:
    76
    Hi friend, I am very interested in your project. Is it possible to get a location by address (similar to google maps)? :)
     
  47. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    No, you specify a central location and Map-ity grabs all the surrounding map data from OSM.
     
  48. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    498
    Does buildr still crash for you with big maps? Because I have a whole island thanks to worldcomposer, does map-ity handle island sized downloads well? its the island of Corsica if that helps, right underneath france. Do you think doing map-ity piece by piece instead of all at once will help?
     
  49. RewindGameStudio

    RewindGameStudio

    Joined:
    Oct 21, 2013
    Posts:
    194
    The map data for Corsica is 320mb! Thats a huge amount of data.

    I can't test it right now but I imagine it will take a while to process that amount of data.
    You can always download the data from somewhere like here: http://overpass-api.de/api/map?bbox=8.2365,41.3211,9.8438,43.0620 ( 320mb ) and then load it as offline map data.
    Just give the file a .mapity extension.

    Hope this helps.

    For a massive about of data like that we'd ideally have a thread doing all the processing which fires an event when it's done.
     
    blueivy likes this.
  50. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    498
    Thanks, I'll definitely download it offline, didn't know I could do that! :D
     
unityunity