My name is Roman, I'm iOS developer and once i have a project where i need to integrate offline maps. Requirements was simple, just offline map with one location, Bermuda in my case, show many pins on map, group them (clustering), have ability to tap on pin and show callout view(aka popover), tap on callout view. That's all. I spend some time by trying different SDK and here is my report.
iOS and Android
First in list is Skobbler ak Scout maps, it's Open Street Maps project as i understand, not bad maps, but they don't have clustering pin annotations at this moment, and when i add 457 pins on map, my app start eating 500+ mb of memory, it's very bad :)
http://www.skobbler.com
Nutiteq, not bad maps but i don't like it documentation, iOS example and docs says that you should use Objective-C++ but in real you can use Ojbective-C because all SDK written in Objective-C. Also i could not integrate maps as GLKView in my ViewController, instead i should Create CLKViewController and add it's view as subview to our viewController only after that maps start working, i don't even try to add pin annotations because maps below uses less memory.
MapBox, this maps use less memory then other, works faster as for me. They have two versions of SDK, old witch have all features i need and even more, and new witch don't have clustering at the moment, and i was surprised but they also don't support offline maps in new SDK, they are working on it but i'm not sure when it will be done. Also new SDK has some bugs, strange warnings in console log, i hope they fix them or i will use Nutiteq :)
https://www.mapbox.com
MAPS.ME is Mail.Ru open source project, i'm not sure if you can use this source in you project.
iOS only
Very old project for offline maps, i didn't use it but MapBox fork this project for their first SDK version, it's nice background to start something new. C
Conclusion
First of all, think again if you really need offline maps, if you have much time better write your offline maps, but if not be ready to met a heap of problems, like offline routing, there are no SDK what supports offline routing, some SDK don't have default things like callout views, clustering etc. And even if they have what you want, don't think that it's easy to implement :)
Choose your best! Good luck!
No comments:
Post a Comment