I'm trying to figure out how I can use pin clustering with SKMapView and SKAnnotation?I see that there is SKPOICluster, but I'm not sure there is a way to Use it with SKAnnotation.
Unfortunately there is no clustering support for SKAnnotations (you will have to implement yourself the logic for choosing which annotations are visible at each zoom level).
Note: clustering support for SKAnnotations is work in progress
The SKPoiCluster is to be used with SKMapPoi. (SKMapPoi offers clustering support) The tradeoff for SKMapPoi is that the icons that can be used are rather limited - sprites from a png file, so if you want to modify an icon you need to modify the png file.
Related
We want to display content on a building in real life. The building is very big, I think we will have troubles with using ARKit to scan and detect objects. What should we use to scan a building and/or display visual content (like red dots you can touch to get more info about the single components of the building)?
We also thought about image tracking. Any hints on which technology is the most appropriate for this scenario?
It's very complicated question. I think if you are near the building you can apply an image recognition technique for any plate with logo on a wall (or for any distinctive part of the facade) employing ARWorldTrackingConfiguration() or ARImageTrackingConfiguration() classes.
But if you're far from the building you can apply object detection technique employing ARReferenceObject() and ARObjectScanningConfiguration() classes respectively. So there would be a kind of symbiosis of different techniques in your AR application.
Hope this helps.
I need to use a PNG as custom map of an indoor place. I don't need navigation but some places should be clickable like what we have in built in map. In android this is possible with MapView but I didn't find anything for iOS to do that. Can someone help me out how to start and do this?
A while back Apple added the ability to provide custom map overlay tiles. It isn't as simple as providing a PNG. You will need to create a database of map tiles at different scales, following a specific naming convention, and then provide a tiled map overlay.
I suggest looking at this blog post:
Custom and Offline Maps Using Overlay Tiles from VIGGIOSOFT
It goes into quite a bit of detail on what's required.
I read here that it's possible to add big custom image as part of MapBox.
But now i'm trying to find out how it can be implemented in latest SDK version, and it's seems like there is no such option.
Is it possible to achieve this?
It is possible. You will need to modify your own Mapbox GL Style.
One way to do it is from Klokantech
This project from github.com/klokantech can show you how to structure your Mapbox GL Style.
Mapbox also has some great resources
Option 1 — upload your raster to Mapbox Studio
Option 2 - Please check out the example from Mapbox. Custom raster style. Use legacy raster tiles on a map.
This screen cap gives an example of how I've done it in the past for iOS. This example serves up local PNG's in an iOS app.
If you’re looking to place a geo-rectified image onto a map, that isn’t possible yet with the Mapbox iOS SDK.
Using annotations for this purpose (view-based or GL-based) isn’t quite supported yet, either. Once view-based annotations completely support flatness and ignore map rotation, that may be an adequate workaround. Look for those features in v3.3.0+.
I would love to reproduce GoogleHeart-like 3D map flyover even when offline.
As of iOS 7 MapKit allows us to draw custom offline tiles. It also allows us to set a Camera in order to see the map in 3D or 2.5D as you may wish to call it.
I was wondering: can I draw a 3D shape like Apple does for its flyover feature, on my custom tiles?
I need to apply a "bump-map" to the map in order to get a GoogleHeart-like 3D view and I was wondering if Apple would allow me to do just that with iOS 7 and custom tiles rendering + camera settings.
Thanks
I have experimented pretty extensively with this, but there is no supported way to do this. Right now, Apple only offers raster tile-based overlay, albeit with automatic 2.5/3D transformation when overlaid on a map. Hopefully in the future they will support 3D API and/or custom, say, OpenGL-based augmentation to the map.
In an iOS application, I want to draw a United States map with states and counties outlined. I also want to draw individual states with counties outlined. I have researched using Shapefiles to do the drawing, but I can't find a good API that translates shapefiles. I have looked into ArcGIS, but it seems most of the drawing they do is web/server based, also without the ability to draw individual states, or outline counties.
Does anyone know of a good iOS API I can use to draw the following maps?
United States with states and counties outlined
Individual state with counties outlined
Take a look at MapBox, it will let you draw these types of maps, then you can pull them in as tiles and overlay them with MapKit.
They also have an iOS SDK, http://mapbox.com/mapbox-ios-sdk/ if you don't want to use MapKit.
I think ArcGIS for iOS is your answer here. The iOS API will allow you to add a MapView to your application.
You can add one or more geoservices to that MapView, as well as local graphic layers.
MapServices are rendered server-side. FeatureServices are rendered client-side. You can also take features (each county or state would be a feature) from the FeatureService and put them into the graphic layer to implement different effects such as selection, outlining...
If you want to have all data stored in the client (the device), then you can embed the json representation of the features and add them to the graphics layer in the MapView, without needing to connect to any geoservice (although geo applications work better when connecting to a server)
Start here: http://developers.arcgis.com/en/ios/sample-code/
This sample looks similar to what you are looking for: http://www.arcgis.com/home/item.html?id=417a0bf9dfda482c8110ebdbde3edd66
This also looks promising: http://developers.arcgis.com/en/ios/guide/cloud-storage-feature-services.htm
All good answers above. The solution that ended up working for me was to simply use an SVG image, drag it into PaintCode and PaintCode gives me all the code to draw the image. A very simple and elegant solution.