├── resources ├── Stalk.POD ├── Sphere.POD ├── Sphere_8bit.pvr ├── pin_sheet_0.png ├── placeholder.pvr ├── pin_sheet_0@2x.png ├── pin_sheet_0@3x.png ├── Sphere_Night_8bit.pvr ├── embedded_manifest.bin ├── placeholder_cube_negX.png ├── placeholder_cube_negY.png ├── placeholder_cube_negZ.png ├── placeholder_cube_posX.png ├── placeholder_cube_posY.png ├── placeholder_cube_posZ.png ├── opensans_semibold_sdf_0.png ├── EmbeddedTheme │ ├── MapMode_MapMode_Water_01.pvr │ ├── MapMode_MapMode_Water_02.pvr │ ├── MapMode_MapMode_Water_03.pvr │ ├── MapMode_MapMode_planes_01.pvr │ ├── MapMode_MapMode_trains_01.pvr │ ├── MapMode_MapMode_trees_01.pvr │ ├── MapMode_MapMode_Water_01_LOD.pvr │ ├── MapMode_MapMode_Water_02_LOD.pvr │ ├── MapMode_MapMode_Water_03_LOD.pvr │ ├── MapMode_MapMode_railDiffuse.pvr │ ├── MapMode_MapMode_trees_top_01.pvr │ ├── MapMode_MapMode_vehicles_01.pvr │ ├── MapMode_MapMode_wallDiffuse.pvr │ ├── SanFrancisco_water_normalmap.pvr │ ├── MapMode_MapMode_TerrainTexture0.pvr │ ├── MapMode_MapMode_TerrainTexture1.pvr │ ├── MapMode_MapMode_TerrainTexture2.pvr │ ├── MapMode_MapMode_TerrainTexture3.pvr │ ├── MapMode_MapMode_TerrainTexture4.pvr │ ├── MapMode_MapMode_TerrainTexture5.pvr │ ├── MapMode_MapMode_TerrainTexture6.pvr │ ├── MapMode_MapMode_TerrainTexture7.pvr │ ├── MapMode_MapMode_TerrainTexture8.pvr │ ├── MapMode_MapMode_TerrainTexture9.pvr │ ├── MapMode_MapMode_TerrainTexture10.pvr │ ├── MapMode_MapMode_TerrainTexture11.pvr │ ├── MapMode_MapMode_TerrainTexture12.pvr │ ├── MapMode_MapMode_TerrainTexture13.pvr │ ├── MapMode_MapMode_TerrainTexture14.pvr │ ├── MapMode_MapMode_TerrainTexture15.pvr │ ├── MapMode_MapMode_TerrainTexture16.pvr │ ├── MapMode_MapMode_TerrainTexture17.pvr │ ├── MapMode_MapMode_TerrainTexture18.pvr │ ├── SanFrancisco_placeholder_no_data.pvr │ ├── MapMode_MapMode_TerrainTexture0_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture10_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture11_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture12_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture13_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture14_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture15_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture16_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture17_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture18_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture1_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture2_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture3_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture4_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture5_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture6_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture7_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture8_LOD.pvr │ ├── MapMode_MapMode_TerrainTexture9_LOD.pvr │ ├── MapMode_MapMode_roadDiffuse_repeat.pvr │ └── Default_water_reflection_cube_map_cubemap.pvr └── label_category_icon_map.json ├── .gitignore ├── CHANGELOG.md ├── DevApp ├── Assets.xcassets │ ├── Contents.json │ └── AppIcon.appiconset │ │ ├── AppIcon_iPad_72X72.png │ │ ├── AppIcon_iPad_76X76.png │ │ ├── AppIcon_iPad_144X144.png │ │ ├── AppIcon_iPad_152X152.png │ │ ├── AppIcon_iPhone_57X57.png │ │ ├── AppIcon_iPhone_114X114.png │ │ ├── AppIcon_iPhone_120X120.png │ │ ├── AppIcon_iPhone_180X180.png │ │ └── AppIcon_iPad_83.5x83.5@x2.png ├── AppMapViewDelegate.h ├── AppDelegate.h ├── main.m ├── ViewController.h ├── AppMapViewDelegate.m ├── ViewController.m ├── Info.plist └── AppDelegate.m ├── framework ├── modulemap └── Info.plist ├── WrldWidgets ├── IndoorControl │ ├── images │ │ ├── arrow3_up.png │ │ ├── arrow3_down.png │ │ ├── arrow3_up@2x.png │ │ ├── arrow3_up@3x.png │ │ ├── arrow3_down@2x.png │ │ ├── arrow3_down@3x.png │ │ ├── floor_selection_button.png │ │ ├── button_exit_interior_off.png │ │ ├── button_exit_interior_on.png │ │ ├── button_exit_interior_off@2x.png │ │ ├── button_exit_interior_off@3x.png │ │ ├── button_exit_interior_on@2x.png │ │ ├── button_exit_interior_on@3x.png │ │ ├── floor_selection_button@2x.png │ │ ├── floor_selection_button@3x.png │ │ ├── floor_selection_button_down.png │ │ ├── floor_selection_button_down@2x.png │ │ └── floor_selection_button_down@3x.png │ └── src │ │ ├── private │ │ ├── UIView+TouchExclusivity.h │ │ ├── ImmediatePanGestureRecognizer.h │ │ ├── IndoorControlDelegate.h │ │ ├── UIHelpers.h │ │ ├── UIHelpers.mm │ │ ├── UIView+TouchExclusivity.m │ │ ├── ImmediatePanGestureRecognizer.mm │ │ ├── UIButton+DefaultStates.h │ │ ├── InteriorsExplorerFloorItemView.h │ │ ├── ImageHelpers.h │ │ ├── UIButton+DefaultStates.mm │ │ └── UIColors.h │ │ └── public │ │ └── WRLDIndoorControlView.h ├── WrldWidgets.h └── Info.plist ├── src ├── private │ ├── WRLDApi+Private.h │ ├── WRLDPoiSearchResult.mm │ ├── WRLDPoiSearchResponse.mm │ ├── WRLDBuildingHighlightSelectionMode.h │ ├── WRLDBlueSphere+Private.h │ ├── WRLDVector3.m │ ├── WRLDPrecacheOperationResult+Private.h │ ├── WRLDPoiService+Private.h │ ├── WRLDMapsceneService+Private.h │ ├── WRLDPointOnRouteOptions+Private.h │ ├── WRLDRoutingService+Private.h │ ├── WRLDMathApiHelpers.h │ ├── WRLDRouteViewOptions+Private.h │ ├── WRLDMapsceneRequestResponse+Private.h │ ├── WRLDVector3+Private.h │ ├── WRLDRoutingQueryResponse+Private.h │ ├── WRLDPoiSearch+Private.h │ ├── WRLDMapsceneDataSources+Private.h │ ├── WRLDRoute+Private.h │ ├── WRLDTouchTapInfo.m │ ├── WRLDRouteSection+Private.h │ ├── WRLDRoutingQuery+Private.h │ ├── WRLDCoordinateWithAltitude.m │ ├── WRLDRoutingQueryWaypoint+Private.h │ ├── WRLDMapsceneRequest+Private.h │ ├── WRLDMapsceneSearchMenuItem+Private.h │ ├── WRLDPickingApiHelpers.h │ ├── WRLDTouchTapInfo+Private.h │ ├── WRLDStringApiHelpers.h │ ├── WRLDIndoorEntityApiHelpers.h │ ├── WRLDIndoorEntityTapResult+Private.h │ ├── WRLDBuildingDimensions+Private.h │ ├── WRLDBuildingInformation+Private.h │ ├── WRLDRouteDirections+Private.h │ ├── WRLDViewAnchor.m │ ├── WRLDBuildingContour+Private.h │ ├── WRLDIndoorMapEntityInformation+Private.h │ ├── WRLDIndoorMap+Private.h │ ├── WRLDPickResult+Private.h │ ├── WRLDBuildingHighlight+Private.h │ ├── WRLDGestureDelegate.h │ ├── WRLDPrecacheOperationResult.mm │ ├── WRLDMapsceneRequestOptions.mm │ ├── WRLDMapsceneDataSources.m │ ├── WRLDMathApiHelpers.mm │ ├── WRLDMapsceneStartLocation+Private.h │ ├── WRLDMapsceneSearchConfig+Private.h │ ├── WRLDPrecacheOperation+Private.h │ ├── WRLDMapsceneSearchMenuItem.m │ ├── WRLDMapsceneRequestResponse.mm │ ├── WRLDBuildingDimensions.mm │ ├── WRLDPoiSearch.mm │ ├── WRLDIndoorEntityTapResult.mm │ ├── WRLDMapscene+Private.h │ ├── WRLDMapOptions.m │ ├── WRLDBuildingInformation.mm │ ├── WRLDPointOnPath+Private.h │ ├── WRLDBuildingHighlightOptions+Private.h │ ├── WRLDRoutingQuery.mm │ ├── WRLDRoutingQueryResponse.mm │ ├── WRLDPointOnPathResult+Private.h │ ├── WRLDIndoorMap.m │ ├── WRLDIndoorMapEntity+Private.h │ ├── WRLDPickResult.mm │ ├── WRLDRouteStep+Private.h │ ├── WRLDMapsceneStartLocation.mm │ ├── WRLDRoute.mm │ ├── WRLDMapsceneService.mm │ ├── WRLDRouteSection.mm │ ├── WRLDRoutingQueryWaypoint.mm │ ├── WRLDMapsceneSearchConfig.m │ ├── WRLDBuildingContour.mm │ ├── WRLDMapscene.mm │ ├── WRLDPointOnRouteOptions.m │ ├── WRLDPointOnPathResult.m │ ├── WRLDPointOnRouteResult+Private.h │ ├── WRLDStringApiHelpers.mm │ ├── WRLDMapsceneRequest.mm │ ├── WRLDPrecacheOperation.mm │ ├── WRLDBuildingApiHelpers.h │ ├── WRLDIndoorEntityApiHelpers.mm │ ├── WRLDAutocompleteOptions.mm │ ├── WRLDRouteView+Private.h │ ├── WRLDRoutingServiceHelpers.h │ ├── WRLDOverlayImpl.h │ ├── WRLDApi.m │ ├── WRLDMapsceneServiceHelpers.h │ ├── WRLDRouteDirections.mm │ ├── WRLDMapFeatureType.m │ ├── WRLDRoutingPolylineCreateParams.h │ ├── WRLDRouteViewAmalgamationHelper.h │ ├── WRLDCoordinateBounds.m │ ├── WRLDRouteViewOptions.m │ ├── WRLDTagSearchOptions.mm │ ├── WRLDRouteViewHelper.h │ ├── WRLDIndoorMapEntity.mm │ ├── WRLDPointOnRouteResult.m │ ├── WRLDRoutingQueryOptions.mm │ ├── WRLDRoutingService.mm │ ├── WRLDMapView+Private.h │ └── WRLDBuildingHighlightOptions.mm ├── public │ ├── WRLDVector3.h │ ├── WRLDTouchTapInfo.h │ ├── WRLDApi.h │ ├── WRLDPoiSearch.h │ ├── WRLDRouteTransportationMode.h │ ├── WRLDRoutingQuery.h │ ├── WRLDMapsceneRequest.h │ ├── WRLDElevationMode.h │ ├── WRLDPrecacheOperation.h │ ├── WRLDIndoorMapEntityLoadState.h │ ├── WRLDCoordinateWithAltitude.h │ ├── WRLDMapsceneRequestResponse.h │ ├── WRLDMapsceneDataSources.h │ ├── WRLDRoutingQueryWaypoint.h │ ├── WRLDOverlay.h │ ├── WRLDPoiSearchResponse.h │ ├── WRLDRoute.h │ ├── WRLDRouteSection.h │ ├── WRLDRoutingQueryResponse.h │ ├── WRLDIndoorEntityTapResult.h │ ├── WRLDBuildingDimensions.h │ ├── WRLDIndoorMapDelegate.h │ ├── WRLDPrecacheOperationResult.h │ ├── WRLDMapsceneSearchMenuItem.h │ ├── WRLDMapsceneRequestOptions.h │ ├── WRLDMapOptions.h │ ├── WRLDRouteDirections.h │ ├── WRLDRoutingService.h │ ├── WRLDPickResult.h │ ├── WRLDViewAnchor.h │ ├── WRLDBuildingInformation.h │ ├── WRLDMapView+IBAdditions.h │ ├── WRLDPointOnPathResult.h │ ├── WRLDMapsceneService.h │ ├── WRLDMapsceneSearchConfig.h │ ├── WRLDPointOnRouteOptions.h │ ├── WRLDMapscene.h │ ├── WRLDAutocompleteOptions.h │ ├── WRLDCoordinateBounds.h │ ├── WRLDBuildingContour.h │ ├── WRLDMapFeatureType.h │ ├── WRLDIndoorMap.h │ ├── WRLDIndoorMapEntity.h │ ├── WRLDMapsceneStartLocation.h │ ├── WRLDTagSearchOptions.h │ ├── WRLDPoiSearchResult.h │ ├── WRLDIndoorMapEntityInformation.h │ ├── WRLDBuildingHighlight.h │ ├── WRLDBuildingHighlightOptions.h │ ├── WRLDRoutingQueryOptions.h │ ├── WRLDPointOnPath.h │ ├── WRLDPoiService.h │ ├── WRLDPointOnRouteResult.h │ ├── WRLDRouteViewOptions.h │ ├── WRLDRouteStep.h │ ├── WRLDIndoorGeoreferencer.h │ └── WRLDBlueSphere.h └── Wrld.h ├── ios-sdk.xcodeproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── DebugIndoorControl ├── DebugIndoorControl.h └── DebugIndoorControl.m ├── Podfile ├── licenses └── README.md ├── WRLD.podspec ├── wrld_cpp_sdk.podspec ├── issue_template.md └── LICENSE.md /resources/Stalk.POD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/Stalk.POD -------------------------------------------------------------------------------- /resources/Sphere.POD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/Sphere.POD -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | **/xcuserdata/ 3 | *.xcworkspace 4 | Pods/ 5 | Podfile.lock 6 | build/ 7 | -------------------------------------------------------------------------------- /resources/Sphere_8bit.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/Sphere_8bit.pvr -------------------------------------------------------------------------------- /resources/pin_sheet_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/pin_sheet_0.png -------------------------------------------------------------------------------- /resources/placeholder.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder.pvr -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog for WRLD iOS SDK 2 | 3 | ## 0.0.266 4 | * Initial release of iOS SDK alpha. 5 | -------------------------------------------------------------------------------- /resources/pin_sheet_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/pin_sheet_0@2x.png -------------------------------------------------------------------------------- /resources/pin_sheet_0@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/pin_sheet_0@3x.png -------------------------------------------------------------------------------- /resources/Sphere_Night_8bit.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/Sphere_Night_8bit.pvr -------------------------------------------------------------------------------- /resources/embedded_manifest.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/embedded_manifest.bin -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /resources/placeholder_cube_negX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder_cube_negX.png -------------------------------------------------------------------------------- /resources/placeholder_cube_negY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder_cube_negY.png -------------------------------------------------------------------------------- /resources/placeholder_cube_negZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder_cube_negZ.png -------------------------------------------------------------------------------- /resources/placeholder_cube_posX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder_cube_posX.png -------------------------------------------------------------------------------- /resources/placeholder_cube_posY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder_cube_posY.png -------------------------------------------------------------------------------- /resources/placeholder_cube_posZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/placeholder_cube_posZ.png -------------------------------------------------------------------------------- /framework/modulemap: -------------------------------------------------------------------------------- 1 | framework module Wrld { 2 | umbrella header "Wrld.h" 3 | export * 4 | module * { export * } 5 | } 6 | -------------------------------------------------------------------------------- /resources/opensans_semibold_sdf_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/opensans_semibold_sdf_0.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/arrow3_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/arrow3_up.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/arrow3_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/arrow3_down.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/arrow3_up@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/arrow3_up@2x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/arrow3_up@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/arrow3_up@3x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/arrow3_down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/arrow3_down@2x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/arrow3_down@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/arrow3_down@3x.png -------------------------------------------------------------------------------- /DevApp/AppMapViewDelegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | @import Wrld; 4 | 5 | 6 | @interface AppMapViewDelegate : NSObject 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_Water_01.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_Water_01.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_Water_02.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_Water_02.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_Water_03.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_Water_03.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_planes_01.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_planes_01.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_trains_01.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_trains_01.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_trees_01.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_trees_01.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_Water_01_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_Water_01_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_Water_02_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_Water_02_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_Water_03_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_Water_03_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_railDiffuse.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_railDiffuse.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_trees_top_01.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_trees_top_01.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_vehicles_01.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_vehicles_01.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_wallDiffuse.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_wallDiffuse.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/SanFrancisco_water_normalmap.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/SanFrancisco_water_normalmap.pvr -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/floor_selection_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/floor_selection_button.png -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture0.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture0.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture1.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture1.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture2.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture2.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture3.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture3.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture4.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture4.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture5.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture5.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture6.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture6.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture7.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture7.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture8.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture8.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture9.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture9.pvr -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/button_exit_interior_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/button_exit_interior_off.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/button_exit_interior_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/button_exit_interior_on.png -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture10.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture10.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture11.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture11.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture12.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture12.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture13.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture13.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture14.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture14.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture15.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture15.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture16.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture16.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture17.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture17.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture18.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture18.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/SanFrancisco_placeholder_no_data.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/SanFrancisco_placeholder_no_data.pvr -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_72X72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_72X72.png -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_76X76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_76X76.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/button_exit_interior_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/button_exit_interior_off@2x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/button_exit_interior_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/button_exit_interior_off@3x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/button_exit_interior_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/button_exit_interior_on@2x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/button_exit_interior_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/button_exit_interior_on@3x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/floor_selection_button@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/floor_selection_button@2x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/floor_selection_button@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/floor_selection_button@3x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/floor_selection_button_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/floor_selection_button_down.png -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture0_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture0_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture10_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture10_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture11_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture11_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture12_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture12_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture13_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture13_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture14_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture14_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture15_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture15_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture16_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture16_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture17_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture17_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture18_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture18_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture1_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture1_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture2_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture2_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture3_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture3_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture4_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture4_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture5_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture5_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture6_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture6_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture7_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture7_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture8_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture8_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture9_LOD.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_TerrainTexture9_LOD.pvr -------------------------------------------------------------------------------- /resources/EmbeddedTheme/MapMode_MapMode_roadDiffuse_repeat.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/MapMode_MapMode_roadDiffuse_repeat.pvr -------------------------------------------------------------------------------- /src/private/WRLDApi+Private.h: -------------------------------------------------------------------------------- 1 | 2 | @interface WRLDApi (Private) 3 | 4 | + (instancetype)eegeoApiInstance; 5 | 6 | @property (atomic) NSString *WrldApiKey; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_144X144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_144X144.png -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_152X152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_152X152.png -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_57X57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_57X57.png -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_114X114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_114X114.png -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_120X120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_120X120.png -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_180X180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPhone_180X180.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/floor_selection_button_down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/floor_selection_button_down@2x.png -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/images/floor_selection_button_down@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/WrldWidgets/IndoorControl/images/floor_selection_button_down@3x.png -------------------------------------------------------------------------------- /resources/EmbeddedTheme/Default_water_reflection_cube_map_cubemap.pvr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/resources/EmbeddedTheme/Default_water_reflection_cube_map_cubemap.pvr -------------------------------------------------------------------------------- /DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_83.5x83.5@x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrld3d/ios-api/HEAD/DevApp/Assets.xcassets/AppIcon.appiconset/AppIcon_iPad_83.5x83.5@x2.png -------------------------------------------------------------------------------- /src/private/WRLDPoiSearchResult.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDPoiSearchResult.h" 2 | 3 | @interface WRLDPoiSearchResult () 4 | 5 | @end 6 | 7 | @implementation WRLDPoiSearchResult 8 | { 9 | 10 | } 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /ios-sdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DevApp/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | @interface AppDelegate : UIResponder 6 | 7 | @property (strong, nonatomic) UIWindow *window; 8 | 9 | 10 | @end 11 | 12 | -------------------------------------------------------------------------------- /src/private/WRLDPoiSearchResponse.mm: -------------------------------------------------------------------------------- 1 | 2 | #import "WRLDPoiSearchResponse.h" 3 | 4 | @interface WRLDPoiSearchResponse () 5 | 6 | @end 7 | 8 | @implementation WRLDPoiSearchResponse 9 | { 10 | 11 | } 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /src/public/WRLDVector3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | struct WRLDVector3 { 6 | CGFloat x; 7 | CGFloat y; 8 | CGFloat z; 9 | }; 10 | typedef struct WRLDVector3 WRLDVector3; 11 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingHighlightSelectionMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef NS_ENUM(NSInteger, WRLDBuildingHighlightSelectionMode) 4 | { 5 | WRLDBuildingHighlightSelectAtLocation, 6 | WRLDBuildingHighlightSelectAtScreenPoint 7 | }; 8 | -------------------------------------------------------------------------------- /DevApp/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/private/WRLDBlueSphere+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDBlueSphere; 6 | 7 | @interface WRLDBlueSphere (Private) 8 | 9 | - (instancetype)initWithMapView:(WRLDMapView *)mapView; 10 | 11 | @end 12 | 13 | NS_ASSUME_NONNULL_END 14 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIView+TouchExclusivity.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | 5 | #import 6 | 7 | @interface UIView (TouchExclusivity) 8 | 9 | - (void) setTouchExclusivity: (UIView*) view; 10 | 11 | @end -------------------------------------------------------------------------------- /src/private/WRLDVector3.m: -------------------------------------------------------------------------------- 1 | #import "WRLDVector3.h" 2 | #import "WRLDVector3+Private.h" 3 | 4 | WRLDVector3 WRLDVector3Make(CGFloat x, CGFloat y, CGFloat z) 5 | { 6 | WRLDVector3 vector3; 7 | vector3.x = x; 8 | vector3.y = y; 9 | vector3.z = z; 10 | return vector3; 11 | } 12 | -------------------------------------------------------------------------------- /DebugIndoorControl/DebugIndoorControl.h: -------------------------------------------------------------------------------- 1 | // 2 | // DebugIndoorControl.h 3 | // ios-sdk 4 | // 5 | // Created by Paul Harris on 02/05/2017. 6 | // Copyright © 2017 eeGeo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DebugIndoorControl : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /src/private/WRLDPrecacheOperationResult+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDPrecacheOperationResult; 6 | 7 | @interface WRLDPrecacheOperationResult (Private) 8 | 9 | - (instancetype)initWithStatus:(bool)succeeded; 10 | 11 | @end 12 | 13 | NS_ASSUME_NONNULL_END 14 | -------------------------------------------------------------------------------- /src/private/WRLDPoiService+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "EegeoPoiApi.h" 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @class WRLDPoiService; 8 | 9 | @interface WRLDPoiService (Private) 10 | 11 | - (instancetype)initWithApi:(Eegeo::Api::EegeoPoiApi&)poiApi; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/public/WRLDTouchTapInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import "WRLDCoordinateWithAltitude.h" 6 | 7 | struct WRLDTouchTapInfo { 8 | CGPoint screenPoint; 9 | WRLDCoordinateWithAltitude coordinateWithAltitude; 10 | }; 11 | typedef struct WRLDTouchTapInfo WRLDTouchTapInfo; 12 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneService+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDMapsceneService.h" 4 | 5 | #include "EegeoMapsceneApi.h" 6 | 7 | @class WRLDMapsceneService; 8 | 9 | @interface WRLDMapsceneService (Private) 10 | 11 | - (instancetype)initWithApi:(Eegeo::Api::EegeoMapsceneApi&)mapsceneApi; 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/ImmediatePanGestureRecognizer.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | #import "UIKit/UIKit.h" 5 | 6 | @class ImmediatePanGestureRecognizer; 7 | 8 | @interface ImmediatePanGestureRecognizer : UIPanGestureRecognizer 9 | { 10 | 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/IndoorControlDelegate.h: -------------------------------------------------------------------------------- 1 | @protocol IndoorControlDelegate 2 | 3 | @optional 4 | 5 | - (void) onCancelButtonPressed; 6 | 7 | - (void) onFloorSliderPressed; 8 | - (void) onFloorSliderDragged:(float)floorInterpolation; 9 | - (void) onFloorSliderReleased:(int)floorIndex; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /WrldWidgets/WrldWidgets.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | //! Project version number for WrldWidgets. 4 | FOUNDATION_EXPORT double WrldWidgetsVersionNumber; 5 | 6 | //! Project version string for WrldWidgets. 7 | FOUNDATION_EXPORT const unsigned char WrldWidgetsVersionString[]; 8 | 9 | #import "WRLDIndoorControlView.h" 10 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnRouteOptions+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDPointOnRouteOptions; 6 | 7 | @interface WRLDPointOnRouteOptions (Private) 8 | - (instancetype)init:(NSString*)indoorMapId 9 | indoorMapFloorId:(NSInteger)indoorMapFloorId; 10 | 11 | @end 12 | 13 | NS_ASSUME_NONNULL_END 14 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingService+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "EegeoRoutingApi.h" 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @class WRLDRoutingService; 8 | 9 | @interface WRLDRoutingService (Private) 10 | 11 | - (instancetype)initWithApi:(Eegeo::Api::EegeoRoutingApi&)routingApi; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/public/WRLDApi.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /*! 4 | Exposes a method to get this map's API key. 5 | The API key for a map should be set in your app's `info.plist` file. 6 | */ 7 | @interface WRLDApi : NSObject 8 | 9 | /// @returns The API key used by this map. 10 | + (nullable NSString *)apiKey; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | #import "UIKit/UIKit.h" 5 | 6 | namespace ExampleApp 7 | { 8 | namespace Helpers 9 | { 10 | namespace UIHelpers 11 | { 12 | bool UsePhoneLayout(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/private/WRLDMathApiHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "VectorMath.h" 4 | 5 | #import 6 | #import 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface WRLDMathApiHelpers : NSObject 11 | 12 | + (Eegeo::v4) getEegeoColor:(UIColor*) fromUIColor; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/public/WRLDIndoorControlView.h: -------------------------------------------------------------------------------- 1 | #import 2 | @import Wrld; 3 | 4 | @interface WRLDIndoorControlView : UIView 5 | 6 | @property (weak, nonatomic) IBOutlet WRLDMapView *mapView; 7 | 8 | - (instancetype)initWithFrame:(CGRect)frame; 9 | 10 | - (void) didEnterIndoorMap; 11 | - (void) didExitIndoorMap; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /src/private/WRLDRouteViewOptions+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRouteViewOptions; 6 | 7 | @interface WRLDRouteViewOptions (Private) 8 | 9 | - (instancetype)init:(CGFloat)width 10 | color:(UIColor*)color 11 | miterLimit:(CGFloat)miterLimit; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneRequestResponse+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | @class WRLDMapsceneRequestResponse; 4 | @class WRLDMapscene; 5 | 6 | #import "WRLDMapsceneRequestResponse.h" 7 | 8 | @interface WRLDMapsceneRequestResponse (Private) 9 | 10 | -(nullable instancetype)initWithSucceeded:(bool)succeeded mapscene:(nullable WRLDMapscene*)mapscene; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /src/private/WRLDVector3+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import "WRLDVector3.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | WRLDVector3 WRLDVector3Make(CGFloat x, CGFloat y, CGFloat z); 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQueryResponse+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRoutingQueryResponse; 6 | 7 | @interface WRLDRoutingQueryResponse (Private) 8 | 9 | - (instancetype)initWithStatusAndResults:(bool)succeeded 10 | results:(NSMutableArray*)results; 11 | 12 | @end 13 | 14 | NS_ASSUME_NONNULL_END 15 | -------------------------------------------------------------------------------- /src/private/WRLDPoiSearch+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #include "EegeoPoiApi.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDPoiSearch; 10 | 11 | @interface WRLDPoiSearch (Private) 12 | 13 | - (instancetype)initWithIdAndApi:(int)searchId poiApi:(Eegeo::Api::EegeoPoiApi&)poiApi; 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneDataSources+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #include "WRLDMapsceneDataSources.h" 6 | 7 | @class WRLDMapsceneDataSources; 8 | 9 | @interface WRLDMapsceneDataSources (Private) 10 | 11 | -initWithCovarageTreeManifestUrl:(NSString*)covarageTreeManifestUrl themeManifestUrl:(NSString*)themeManifestUrl; 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /DevApp/ViewController.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | @interface ViewController : UIViewController 6 | 7 | - (IBAction)exitButton:(id)sender; 8 | - (IBAction)moveUpButton:(id)sender; 9 | - (IBAction)moveDownButton:(id)sender; 10 | - (IBAction)expandButton:(id)sender; 11 | - (IBAction)collapseButton:(id)sender; 12 | - (IBAction)enterButton:(id)sender; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /src/private/WRLDRoute+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRoute; 6 | 7 | @interface WRLDRoute (Private) 8 | 9 | - (instancetype)initWithSections:(NSMutableArray*)sections 10 | duration:(NSTimeInterval)duration 11 | distance:(CLLocationDistance)distance; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/private/WRLDTouchTapInfo.m: -------------------------------------------------------------------------------- 1 | #import "WRLDTouchTapInfo.h" 2 | #import "WRLDTouchTapInfo+Private.h" 3 | 4 | WRLDTouchTapInfo WRLDTouchTapInfoMake(CGPoint screenPoint, WRLDCoordinateWithAltitude coordinateWithAltitude) 5 | { 6 | WRLDTouchTapInfo tapInfo; 7 | tapInfo.screenPoint = screenPoint; 8 | tapInfo.coordinateWithAltitude = coordinateWithAltitude; 9 | return tapInfo; 10 | } 11 | -------------------------------------------------------------------------------- /src/private/WRLDRouteSection+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRouteSection; 6 | 7 | @interface WRLDRouteSection (Private) 8 | 9 | - (instancetype)initWithSteps:(NSMutableArray*)steps 10 | duration:(NSTimeInterval)duration 11 | distance:(CLLocationDistance)distance; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQuery+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #include "EegeoRoutingApi.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDRoutingQuery; 10 | 11 | @interface WRLDRoutingQuery (Private) 12 | - (instancetype)initWithIdAndApi:(int)queryId routingApi:(Eegeo::Api::EegeoRoutingApi&)routingApi; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /src/private/WRLDCoordinateWithAltitude.m: -------------------------------------------------------------------------------- 1 | #import "WRLDCoordinateWithAltitude.h" 2 | 3 | WRLDCoordinateWithAltitude WRLDCoordinateWithAltitudeMake(CLLocationCoordinate2D coordinate, CLLocationDistance altitude) 4 | { 5 | WRLDCoordinateWithAltitude coordWithAltitude; 6 | coordWithAltitude.coordinate = coordinate; 7 | coordWithAltitude.altitude = altitude; 8 | return coordWithAltitude; 9 | } 10 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQueryWaypoint+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRoutingQueryWaypoint; 6 | 7 | @interface WRLDRoutingQueryWaypoint (Private) 8 | 9 | - (instancetype)initWithLatLng:(CLLocationCoordinate2D)latLng 10 | isIndoors:(BOOL)isIndoors 11 | indoorFloorId:(int)indoorFloorId; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneRequest+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDMapsceneRequest.h" 4 | #import "WRLDMapsceneRequestOptions.h" 5 | 6 | #include "EegeoMapsceneApi.h" 7 | 8 | @class WRLDMapsceneRequest; 9 | 10 | @interface WRLDMapsceneRequest (Private) 11 | 12 | - (instancetype)initWithMapsceneApi:(Eegeo::Api::EegeoMapsceneApi*)mapsceneApi :(WRLDMapsceneRequestOptions *)mapsceneRequestOptions; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneSearchMenuItem+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDMapsceneSearchMenuItem.h" 4 | #import 5 | 6 | @class WRLDMapsceneSearchMenuItem; 7 | 8 | @interface WRLDMapsceneSearchMenuItem (Private) 9 | { 10 | 11 | } 12 | 13 | -(instancetype)initWithName:(NSString*)name tag:(NSString*)tag iconKey:(NSString*)iconKey skipYelpSearch:(bool)skipYelpSearch; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /src/private/WRLDPickingApiHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "EegeoPickingApi.h" 6 | 7 | #import 8 | 9 | #import "WRLDPickResult.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WRLDPickingApiHelpers : NSObject 14 | 15 | + (WRLDPickResult*) createWRLDPickResult:(const Eegeo::Api::PickResult&) withPickResult; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /src/private/WRLDTouchTapInfo+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import "WRLDTouchTapInfo.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | WRLDTouchTapInfo WRLDTouchTapInfoMake(CGPoint screenPoint, WRLDCoordinateWithAltitude coordinateWithAltitude); 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | NS_ASSUME_NONNULL_END 19 | 20 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIHelpers.mm: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #include "UIHelpers.h" 4 | 5 | namespace ExampleApp 6 | { 7 | namespace Helpers 8 | { 9 | namespace UIHelpers 10 | { 11 | bool UsePhoneLayout() 12 | { 13 | return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone; 14 | } 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/public/WRLDPoiSearch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A handle to an ongoing search. 9 | */ 10 | @interface WRLDPoiSearch : NSObject 11 | 12 | /*! 13 | Cancels the current search if it has not yet completed. 14 | */ 15 | - (void)cancel; 16 | 17 | /*! 18 | @returns The ID of this search. 19 | */ 20 | - (int)poiSearchId; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /src/private/WRLDStringApiHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #include 6 | #include 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface WRLDStringApiHelpers : NSObject 11 | 12 | + (std::vector) copyToStringVector:(NSArray*) fromNSArray; 13 | + (NSArray*) copyToNSStringArray:(const std::vector&) fromStringVector; 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /src/public/WRLDRouteTransportationMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /*! 4 | Represents a mode of transport for a WRLDRoute. This is currently a placeholder, 5 | but more modes of transport may be added in future versions of the API. 6 | */ 7 | typedef NS_ENUM(NSInteger, WRLDRouteTransportationMode) 8 | { 9 | /// Indicates that the route is a walking Route. 10 | WRLDWalking, 11 | /// Indicates that the route is a driving Route. 12 | WRLDDriving 13 | }; 14 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorEntityApiHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import "WRLDIndoorEntityTapResult.h" 6 | 7 | #include "EegeoIndoorEntityApi.h" 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @interface WRLDIndoorEntityApiHelpers : NSObject 12 | 13 | + (WRLDIndoorEntityTapResult*) createIndoorEntityTapResult:(const Eegeo::Api::IndoorEntityPickedMessage&) withIndoorEntityPickedMessage; 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorEntityTapResult+Private.h: -------------------------------------------------------------------------------- 1 | #import "WRLDIndoorEntityTapResult.h" 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDIndoorEntityTapResult; 6 | 7 | @interface WRLDIndoorEntityTapResult (Private) 8 | 9 | - (instancetype) initWithScreenPoint:(CGPoint)screenPoint 10 | indoorMapId:(NSString*)indoorMapId 11 | indoorEntityIds:(NSArray*)indoorEntityIds; 12 | 13 | @end 14 | 15 | NS_ASSUME_NONNULL_END 16 | -------------------------------------------------------------------------------- /src/public/WRLDRoutingQuery.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A handle to an ongoing routing service query. 9 | */ 10 | @interface WRLDRoutingQuery : NSObject 11 | 12 | /*! 13 | Cancels the current query if it has not yet been completed. 14 | */ 15 | - (void)cancel; 16 | 17 | /*! 18 | @returns The ID of this query. 19 | */ 20 | - (int)routingQueryId; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneRequest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | /*! 7 | * An object representing a request for a mapscene. 8 | */ 9 | @interface WRLDMapsceneRequest: NSObject 10 | 11 | /*! 12 | * Cancels the current mapscene request if not yet completed. 13 | */ 14 | -(void)cancel; 15 | 16 | /*! 17 | @returns The ID of this request. 18 | */ 19 | - (int)requestId; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /src/public/WRLDElevationMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /// Indicates how an elevation property of WRLDOverlay is interpreted. 4 | typedef NS_ENUM(NSInteger, WRLDElevationMode) 5 | { 6 | /// The elevation property is interpreted as an absolute altitude above mean sea level, in meters. 7 | WRLDElevationModeHeightAboveSeaLevel, 8 | 9 | /// The elevation property is interpreted as a height relative to the map's terrain, in meters. 10 | WRLDElevationModeHeightAboveGround 11 | }; 12 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingDimensions+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDBuildingDimensions.h" 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @class WRLDBuildingDimensions; 8 | 9 | @interface WRLDBuildingDimensions (Private) 10 | 11 | - (instancetype) initWithBaseAltitude:(CLLocationDistance)baseAltitude 12 | topAltitude:(CLLocationDistance)topAltitude 13 | centroid:(CLLocationCoordinate2D)centroid; 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingInformation+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDBuildingInformation.h" 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @class WRLDBuildingInformation; 8 | 9 | @interface WRLDBuildingInformation (Private) 10 | 11 | - (instancetype) initWithBuildingId:(NSString*)buildingId 12 | buildingDimensions:(WRLDBuildingDimensions*)buildingDimensions 13 | contours:(NSArray*)contours; 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /src/public/WRLDPrecacheOperation.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A handle to an ongoing precache operation. 9 | */ 10 | @interface WRLDPrecacheOperation : NSObject 11 | 12 | /*! 13 | Cancels the current precache operation if it has not yet been completed. 14 | */ 15 | - (void)cancel; 16 | 17 | /*! 18 | @returns The ID of this precache operation. 19 | */ 20 | - (int)precacheOperationId; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorMapEntityLoadState.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /// Represents the current streaming status of indoor map entities for an indoor map. 4 | typedef NS_ENUM(NSInteger, WRLDIndoorMapEntityLoadState) 5 | { 6 | /// The indoor map is not loaded. 7 | WRLDIndoorMapEntityLoadStateNone, 8 | 9 | /// Some map tiles for the indoor map are loaded. 10 | WRLDIndoorMapEntityLoadStatePartial, 11 | 12 | /// All map tiles for the indoor map are loaded. 13 | WRLDIndoorMapEntityLoadStateComplete 14 | }; -------------------------------------------------------------------------------- /src/private/WRLDRouteDirections+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRouteDirections; 6 | 7 | @interface WRLDRouteDirections (Private) 8 | 9 | - (instancetype)initWithType:(NSString*)type 10 | modifier:(NSString*)modifier 11 | latLng:(CLLocationCoordinate2D)latLng 12 | headingBefore:(CLLocationDirection)headingBefore 13 | headingAfter:(CLLocationDirection)headingAfter; 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /src/private/WRLDViewAnchor.m: -------------------------------------------------------------------------------- 1 | #import "WRLDViewAnchor.h" 2 | 3 | @implementation WRLDViewAnchor 4 | 5 | + (void)positionView:(UIView *)view 6 | screenPoint:(CGPoint *)screenPoint 7 | anchorUV:(CGPoint *)anchorUV 8 | { 9 | CGRect frame = view.frame; 10 | frame.origin.x = (screenPoint->x/[UIScreen mainScreen].scale) - (frame.size.width*anchorUV->x); 11 | frame.origin.y = (screenPoint->y/[UIScreen mainScreen].scale) - (frame.size.height*anchorUV->y); 12 | view.frame = frame; 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # usage: 2 | # pod install 3 | # 4 | # For internal development, to install development pod building against (private) src of WRLD C++ sdk: 5 | # env WRLD_CPP_SDK_POD=development pod install 6 | 7 | platform :ios, '8.0' 8 | 9 | target 'WrldSdk' do 10 | 11 | project 'ios-sdk' 12 | 13 | case ENV['WRLD_CPP_SDK_POD'] 14 | when 'development' 15 | pod 'wrld_cpp_sdk', :path => '../../eegeo-mobile/' 16 | else 17 | pod 'wrld_cpp_sdk', :podspec => './wrld_cpp_sdk.podspec' 18 | end 19 | 20 | end 21 | 22 | 23 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIView+TouchExclusivity.m: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2014), All Rights Reserved 2 | 3 | #import "UIView+TouchExclusivity.h" 4 | 5 | @implementation UIView (TouchExclusivity) 6 | 7 | - (void) setTouchExclusivity:(UIView *)view 8 | { 9 | for (UIView *subView in [view subviews]) 10 | { 11 | if ([subView subviews] != nil) 12 | { 13 | [self setTouchExclusivity: subView]; 14 | } 15 | 16 | subView.exclusiveTouch = YES; 17 | } 18 | } 19 | 20 | @end -------------------------------------------------------------------------------- /src/private/WRLDBuildingContour+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDBuildingContour.h" 4 | 5 | #include 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDBuildingContour; 10 | 11 | @interface WRLDBuildingContour (Private) 12 | 13 | - (instancetype) initWithBottomAltitude:(CLLocationDistance)bottomAltitude 14 | topAltitude:(CLLocationDistance)topAltitude 15 | points:(std::vector)points; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorMapEntityInformation+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDIndoorMapEntityInformation.h" 4 | 5 | #include "EegeoIndoorEntityInformationApi.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDIndoorMapEntityInformation; 10 | 11 | @interface WRLDIndoorMapEntityInformation (Private) 12 | 13 | - (instancetype) initWithIndoorMapId:(NSString*)indoorMapId; 14 | 15 | - (int) indoorMapEntityInformationId; 16 | 17 | - (void) loadIndoorMapEntityInformationFromNative; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorMap+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDIndoorMapFloor; 6 | 7 | @interface WRLDIndoorMap (Private) 8 | 9 | - (id) initWithId: (NSString*)indoorId name: (NSString*)name floors: (NSArray*)floors userData: (NSString*)userData; 10 | 11 | @end 12 | 13 | @interface WRLDIndoorMapFloor (Private) 14 | 15 | - (id) initWithId: (NSString*)floorId name: (NSString*)name floorIndex:(NSInteger)floorIndex floorNumber:(NSInteger)floorNumber; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /src/private/WRLDPickResult+Private.h: -------------------------------------------------------------------------------- 1 | #import "WRLDPickResult.h" 2 | 3 | #include 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @class WRLDPickResult; 8 | 9 | @interface WRLDPickResult (Private) 10 | 11 | - (instancetype) initWithFeatureFound:(Boolean)found 12 | mapFeatureType:(WRLDMapFeatureType)mapFeatureType 13 | intersectionPoint:(WRLDCoordinateWithAltitude)intersectionPoint 14 | intersectionSurfaceNormal:(WRLDVector3)intersectionSurfaceNormal; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /licenses/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | # Free and Open Source Software Licenses 6 | 7 | The WRLD iOS SDK makes use of the Open Sans font. Its license is [here](https://github.com/google/fonts/blob/master/apache/opensans/LICENSE.txt). 8 | 9 | ## License 10 | 11 | The WRLD iOS SDK is released under the Simplified BSD License. See [LICENSE.md](https://github.com/wrld3d/ios-api/blob/master/LICENSE.md) for details. 12 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingHighlight+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDBuildingHighlight.h" 4 | #import "WRLDBuildingHighlightOptions.h" 5 | 6 | #include "EegeoBuildingsApi.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @class WRLDBuildingHighlight; 11 | 12 | @interface WRLDBuildingHighlight (Private) 13 | 14 | - (instancetype) initWithHighlightOptions:(WRLDBuildingHighlightOptions*)buildingHighlightOptions; 15 | 16 | - (int) buildingHighlightId; 17 | 18 | - (void) loadBuildingInformationFromNative; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /src/private/WRLDGestureDelegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | namespace Eegeo { 6 | class ITouchController; 7 | } 8 | 9 | @class WRLDMapView; 10 | 11 | @interface WRLDGestureDelegate : NSObject 12 | 13 | 14 | -(instancetype) initWith :(Eegeo::ITouchController*)pTouchController 15 | :(float)width 16 | :(float)height 17 | :(float)pixelScale; 18 | 19 | -(void) bind:(WRLDMapView*)pView; 20 | 21 | -(void) unbind; 22 | 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /src/private/WRLDPrecacheOperationResult.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDPrecacheOperationResult.h" 2 | #import "WRLDPrecacheOperationResult+Private.h" 3 | 4 | @interface WRLDPrecacheOperationResult () 5 | 6 | @end 7 | 8 | @implementation WRLDPrecacheOperationResult 9 | { 10 | BOOL m_succeeded; 11 | } 12 | 13 | - (instancetype)initWithStatus:(bool)succeeded 14 | { 15 | if (self = [super init]) 16 | { 17 | m_succeeded = succeeded; 18 | } 19 | 20 | return self; 21 | } 22 | 23 | - (BOOL)succeeded 24 | { 25 | return m_succeeded; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneRequestOptions.mm: -------------------------------------------------------------------------------- 1 | #include "WRLDMapsceneRequestOptions.h" 2 | 3 | @interface WRLDMapsceneRequestOptions() 4 | 5 | @end 6 | 7 | @implementation WRLDMapsceneRequestOptions 8 | 9 | -(instancetype)initWithShortLink:(NSString*)shortLinkUrl applyMapsceneOnSuccess:(bool)applyMapsceneOnSuccess 10 | { 11 | 12 | self = [super init]; 13 | 14 | if(self) 15 | { 16 | _shortLinkUrl = shortLinkUrl; 17 | _applyMapsceneOnSuccess = applyMapsceneOnSuccess; 18 | } 19 | 20 | return self; 21 | } 22 | 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneDataSources.m: -------------------------------------------------------------------------------- 1 | #include "WRLDMapsceneDataSources.h" 2 | 3 | @interface WRLDMapsceneDataSources () 4 | 5 | @end 6 | 7 | @implementation WRLDMapsceneDataSources 8 | { 9 | 10 | } 11 | 12 | -initWithCovarageTreeManifestUrl:(NSString*)covarageTreeManifestUrl themeManifestUrl:(NSString*)themeManifestUrl 13 | { 14 | self = [super init]; 15 | 16 | if(self) 17 | { 18 | _covarageTreeManifestUrl = covarageTreeManifestUrl; 19 | _themeManifestUrl = themeManifestUrl; 20 | } 21 | 22 | return self; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /src/private/WRLDMathApiHelpers.mm: -------------------------------------------------------------------------------- 1 | #include "WRLDMathApiHelpers.h" 2 | 3 | @interface WRLDMathApiHelpers () 4 | 5 | @end 6 | 7 | @implementation WRLDMathApiHelpers 8 | { 9 | 10 | } 11 | 12 | + (Eegeo::v4) getEegeoColor:(UIColor*) fromUIColor 13 | { 14 | CGFloat red, green, blue, alpha; 15 | [fromUIColor getRed:&red 16 | green:&green 17 | blue:&blue 18 | alpha:&alpha]; 19 | return Eegeo::v4(static_cast(red), static_cast(green), static_cast(blue), static_cast(alpha)); 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneStartLocation+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #import "WRLDMapsceneStartLocation.h" 7 | 8 | @class WRLDMapsceneStartLocation; 9 | 10 | @interface WRLDMapsceneStartLocation(Private) 11 | 12 | 13 | -(instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate distance:(CLLocationDistance)distance interiorFloorIndex:(int)interiorFloorIndex interiorId:(NSString*)interiorId heading:(double)heading tryStartAtGpsLocation:(bool)tryStartAtGpsLocation; 14 | 15 | 16 | 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /src/public/WRLDCoordinateWithAltitude.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | struct WRLDCoordinateWithAltitude { 8 | CLLocationCoordinate2D coordinate; 9 | CLLocationDistance altitude; 10 | }; 11 | typedef struct WRLDCoordinateWithAltitude WRLDCoordinateWithAltitude; 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | WRLDCoordinateWithAltitude WRLDCoordinateWithAltitudeMake(CLLocationCoordinate2D coordinate, CLLocationDistance altitude); 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneSearchConfig+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import "WRLDMapsceneSearchConfig.h" 5 | 6 | @class WRLDMapsceneSearchConfig; 7 | 8 | @interface WRLDMapsceneSearchConfig(Private) 9 | 10 | 11 | -(instancetype)initWithOutdoorSeachMenuItems:(NSArray *)outdoorSeachMenuItems 12 | performStartupSearch:(bool)performStartupSearch 13 | startupSearchTerm:(NSString*)startupSearchTerm 14 | overrideIndoorSearchMenu:(bool)overrideIndoorSearchMenu; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/ImmediatePanGestureRecognizer.mm: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #import "ImmediatePanGestureRecognizer.h" 4 | #import 5 | 6 | @implementation ImmediatePanGestureRecognizer 7 | 8 | - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 9 | { 10 | if(self.state >= UIGestureRecognizerStateBegan) 11 | { 12 | return; 13 | } 14 | 15 | [super touchesBegan:(NSSet*)touches withEvent:(UIEvent*) event]; 16 | self.state = UIGestureRecognizerStateBegan; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /src/private/WRLDPrecacheOperation+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import "WRLDPrecacheOperationResult.h" 5 | 6 | #include "EegeoPrecacheApi.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @class WRLDPrecacheOperation; 11 | 12 | @interface WRLDPrecacheOperation (Private) 13 | - (instancetype)initWithId:(int)operationId 14 | precacheApi:(Eegeo::Api::EegeoPrecacheApi&)precacheApi 15 | completionHandler:(WRLDPrecacheOperationHandler)completionHandler; 16 | 17 | - (void)completeWithResult:(WRLDPrecacheOperationResult*)response; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneRequestResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import "WRLDMapscene.h" 5 | 6 | /*! 7 | * A response to the mapscene Request. This is returned when a mapscene request completes via a callback. 8 | */ 9 | @interface WRLDMapsceneRequestResponse : NSObject 10 | 11 | /// A boolean indicating wheather the request succeeded. True if the request was successful, else false. 12 | @property (readonly) bool succeeded; 13 | 14 | /// Holds the resulting mapscene from the request to the mapscene service. 15 | @property (readonly, nullable) WRLDMapscene* mapscene; 16 | 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneSearchMenuItem.m: -------------------------------------------------------------------------------- 1 | #import "WRLDMapsceneSearchMenuItem.h" 2 | 3 | @interface WRLDMapsceneSearchMenuItem() 4 | 5 | @end 6 | 7 | @implementation WRLDMapsceneSearchMenuItem{ 8 | 9 | } 10 | 11 | -(instancetype)initWithName:(NSString*)name tag:(NSString*)tag iconKey:(NSString*)iconKey skipYelpSearch:(bool)skipYelpSearch 12 | { 13 | self = [super init]; 14 | 15 | if(self) 16 | { 17 | _name = name; 18 | _tag = tag; 19 | _iconKey = iconKey; 20 | _skipYelpSearch = skipYelpSearch; 21 | 22 | } 23 | 24 | return self; 25 | 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneDataSources.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | /** 6 | * The data defining the source manifest files to load for a given Mapscene. This defines what 7 | * data is loaded and what theme to apply. 8 | */ 9 | @interface WRLDMapsceneDataSources : NSObject 10 | 11 | /** 12 | * The coverage tree manifest to load for this Mapscene. 13 | */ 14 | @property (nonatomic, readonly) NSString* covarageTreeManifestUrl; 15 | 16 | /** 17 | * The themes manifest to load for this Mapscene. 18 | */ 19 | @property (nonatomic, readonly) NSString* themeManifestUrl; 20 | 21 | 22 | @end 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/public/WRLDRoutingQueryWaypoint.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | A waypoint for the routing query. 10 | */ 11 | @interface WRLDRoutingQueryWaypoint : NSObject 12 | 13 | /*! 14 | @returns The geographic location for this waypoint. 15 | */ 16 | - (CLLocationCoordinate2D) latLng; 17 | 18 | /*! 19 | @returns Whether this waypoint is indoors or not. 20 | */ 21 | - (BOOL) isIndoors; 22 | 23 | /*! 24 | @returns If indoors, the ID of the floor this waypoint is on. 25 | */ 26 | - (int) indoorFloorId; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneRequestResponse.mm: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "WRLDMapsceneRequestResponse.h" 4 | #import "WRLDMapsceneRequestResponse+Private.h" 5 | 6 | @interface WRLDMapsceneRequestResponse() 7 | { 8 | 9 | } 10 | 11 | @end 12 | 13 | @implementation WRLDMapsceneRequestResponse 14 | { 15 | 16 | } 17 | 18 | -(nullable instancetype)initWithSucceeded :(bool)succeeded mapscene:(nullable WRLDMapscene*)mapscene 19 | { 20 | 21 | self = [super init]; 22 | 23 | if(self){ 24 | _succeeded = succeeded; 25 | _mapscene = mapscene; 26 | } 27 | 28 | return self; 29 | 30 | } 31 | 32 | @end 33 | 34 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingDimensions.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDBuildingDimensions.h" 2 | #import "WRLDBuildingDimensions+Private.h" 3 | 4 | @interface WRLDBuildingDimensions () 5 | 6 | @end 7 | 8 | @implementation WRLDBuildingDimensions 9 | { 10 | 11 | } 12 | 13 | - (instancetype) initWithBaseAltitude:(CLLocationDistance)baseAltitude 14 | topAltitude:(CLLocationDistance)topAltitude 15 | centroid:(CLLocationCoordinate2D)centroid 16 | { 17 | if (self = [super init]) 18 | { 19 | _baseAltitude = baseAltitude; 20 | _topAltitude = topAltitude; 21 | _centroid = centroid; 22 | } 23 | 24 | return self; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /src/private/WRLDPoiSearch.mm: -------------------------------------------------------------------------------- 1 | 2 | #import "WRLDPoiSearch.h" 3 | #import "WRLDPoiSearch+Private.h" 4 | 5 | @interface WRLDPoiSearch () 6 | 7 | @end 8 | 9 | @implementation WRLDPoiSearch 10 | { 11 | Eegeo::Api::EegeoPoiApi* m_poiApi; 12 | int m_searchId; 13 | } 14 | 15 | - (instancetype)initWithIdAndApi:(int)searchId poiApi:(Eegeo::Api::EegeoPoiApi&)poiApi 16 | { 17 | if (self = [super init]) 18 | { 19 | m_poiApi = &poiApi; 20 | m_searchId = searchId; 21 | } 22 | 23 | return self; 24 | } 25 | 26 | - (void)cancel 27 | { 28 | m_poiApi->CancelSearch(m_searchId); 29 | } 30 | 31 | - (int)poiSearchId 32 | { 33 | return m_searchId; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /src/public/WRLDOverlay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | /*! 6 | The 'WRLDOverlay' protocol provides a marker interface for geographic map 7 | content to be added to a map view. Overlays are data objects that define 8 | geographic information associated with a point or region on the map, allowing 9 | a visual representation to be displayed on a map view when the point or region 10 | comes into view. Several concrete classes adopt this protocol to define 11 | primitive shapes, such as polygons and polylines. An overlay object is added 12 | to a WRLDMapView by calling its addOverlay(_:) method. 13 | */ 14 | @protocol WRLDOverlay 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIButton+DefaultStates.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | 5 | #import 6 | 7 | @interface UIButton (DefaultStates) 8 | 9 | - (void)setDefaultStates; 10 | 11 | - (void)setDefaultStatesWithImages:(UIImage*)normalImage 12 | :(UIImage*)highlightImage; 13 | 14 | - (void)setDefaultStatesWithImageName:(NSString*)imageName fromBundle:(NSBundle*)bundle; 15 | 16 | - (void)setDefaultStatesWithImageNames:(NSString*)normalImageName 17 | :(NSString*)highlightImageName 18 | fromBundle:(NSBundle*)bundle; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorEntityTapResult.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDIndoorEntityTapResult.h" 2 | #import "WRLDIndoorEntityTapResult+Private.h" 3 | 4 | @interface WRLDIndoorEntityTapResult () 5 | 6 | @end 7 | 8 | @implementation WRLDIndoorEntityTapResult 9 | { 10 | } 11 | 12 | - (instancetype) initWithScreenPoint:(CGPoint)screenPoint 13 | indoorMapId:(NSString*)indoorMapId 14 | indoorEntityIds:(NSArray*)indoorEntityIds 15 | { 16 | if (self = [super init]) 17 | { 18 | _screenPoint = screenPoint; 19 | _indoorMapId = indoorMapId; 20 | _indoorEntityIds = indoorEntityIds; 21 | } 22 | 23 | return self; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /src/private/WRLDMapscene+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "WRLDMapscene.h" 4 | #include 5 | 6 | 7 | @class WRLDMapsceneStartLocation; 8 | @class WRLDMapsceneDataSources; 9 | @class WRLDMapsceneSearchConfig; 10 | @class WRLDMapscene; 11 | 12 | @interface WRLDMapscene (Private) 13 | 14 | -(instancetype)initWithName:(NSString*)name 15 | shortLink:(NSString*)shortLink 16 | apiKey:(NSString*)apiKey 17 | startLocation:(WRLDMapsceneStartLocation*)startLocation 18 | dataSources:(WRLDMapsceneDataSources *)dataSources 19 | searchConfig:(WRLDMapsceneSearchConfig *)searchConfig; 20 | 21 | @end 22 | 23 | -------------------------------------------------------------------------------- /src/public/WRLDPoiSearchResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A response to a POI search. Returned when a search completes via callback. 9 | */ 10 | @interface WRLDPoiSearchResponse : NSObject 11 | 12 | /*! 13 | @returns A boolean indicating whether the search succeeded or not. 14 | */ 15 | @property (nonatomic) BOOL succeeded; 16 | 17 | /*! 18 | Get the results of the search as a List of WRLDPoiSearchResult objects. 19 | @returns The search results. This will be empty if the the search failed, or if no POIs were found. 20 | */ 21 | @property (nonatomic) NSMutableArray* results; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /src/public/WRLDRoute.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | An object representing a route on the map. 10 | */ 11 | @interface WRLDRoute : NSObject 12 | 13 | /*! 14 | @returns A List of the different WRLDRouteSection objects which make up this route. 15 | */ 16 | - (NSMutableArray*) sections; 17 | 18 | /*! 19 | @returns The estimated time this route will take to travel in seconds. 20 | */ 21 | - (NSTimeInterval) duration; 22 | 23 | /*! 24 | @returns The estimated distance this route covers in meters. 25 | */ 26 | - (CLLocationDistance) distance; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/private/WRLDMapOptions.m: -------------------------------------------------------------------------------- 1 | 2 | #import "WRLDMapOptions.h" 3 | 4 | @implementation WRLDMapOptions 5 | 6 | 7 | + (instancetype)mapOptions 8 | { 9 | return [[self alloc] init]; 10 | } 11 | 12 | - (instancetype)init 13 | { 14 | if (self = [super init]) 15 | { 16 | _coverageTreeManifest = @""; 17 | _environmentThemesManifest = @""; 18 | } 19 | return self; 20 | } 21 | 22 | - (void)setCoverageTreeManifest:(NSString *)coverageTreeManifest 23 | { 24 | _coverageTreeManifest = coverageTreeManifest; 25 | } 26 | 27 | - (void)setEnvironmentThemesManifest:(NSString *)environmentThemesManifest 28 | { 29 | _environmentThemesManifest = environmentThemesManifest; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingInformation.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDBuildingInformation.h" 2 | #import "WRLDBuildingInformation+Private.h" 3 | 4 | @interface WRLDBuildingInformation () 5 | 6 | @end 7 | 8 | @implementation WRLDBuildingInformation 9 | { 10 | 11 | } 12 | 13 | - (instancetype) initWithBuildingId:(NSString*)buildingId 14 | buildingDimensions:(WRLDBuildingDimensions*)buildingDimensions 15 | contours:(NSArray*)contours; 16 | 17 | { 18 | if (self = [super init]) 19 | { 20 | _buildingId = buildingId; 21 | _buildingDimensions = buildingDimensions; 22 | _contours = contours; 23 | } 24 | 25 | return self; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnPath+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "EegeoPathApi.h" 4 | 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | @class WRLDPointOnPath; 9 | 10 | @interface WRLDPointOnPath (Private) 11 | 12 | - (instancetype)initWithApi:(Eegeo::Api::EegeoPathApi&)pathApi; 13 | 14 | - (std::vector) makeLatLongPath:(CLLocationCoordinate2D*)path 15 | count:(NSInteger)count; 16 | 17 | - (Eegeo::Routes::Webservice::RouteData*) makeRouteDataFromWRLDRoute:(WRLDRoute*)route; 18 | 19 | - (WRLDPointOnRouteResult*) makeWRLDPointOnRouteFromPlatform:(Eegeo::Routes::PointOnRoute)pointOnRouteInfo withRoute:(WRLDRoute*)route; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingHighlightOptions+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDBuildingHighlightOptions.h" 4 | #import "WRLDBuildingHighlightSelectionMode.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | @class WRLDBuildingHighlightOptions; 9 | 10 | @interface WRLDBuildingHighlightOptions (Private) 11 | 12 | - (instancetype) initWithLocation:(CLLocationCoordinate2D)location; 13 | 14 | - (instancetype) initWithScreenPoint:(CGPoint)screenPoint; 15 | 16 | - (WRLDBuildingHighlightSelectionMode) selectionMode; 17 | 18 | - (CLLocationCoordinate2D) selectionLocation; 19 | 20 | - (CGPoint) selectionScreenPoint; 21 | 22 | - (UIColor*) color; 23 | 24 | - (Boolean) shouldCreateView; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQuery.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRoutingQuery.h" 2 | #import "WRLDRoutingQuery+Private.h" 3 | 4 | @interface WRLDRoutingQuery () 5 | 6 | @end 7 | 8 | @implementation WRLDRoutingQuery 9 | { 10 | Eegeo::Api::EegeoRoutingApi* m_routingApi; 11 | int m_queryId; 12 | } 13 | 14 | - (instancetype)initWithIdAndApi:(int)queryId routingApi:(Eegeo::Api::EegeoRoutingApi&)routingApi 15 | { 16 | if (self = [super init]) 17 | { 18 | m_routingApi = &routingApi; 19 | m_queryId = queryId; 20 | } 21 | 22 | return self; 23 | } 24 | 25 | - (void)cancel 26 | { 27 | m_routingApi->CancelQuery(m_queryId); 28 | } 29 | 30 | - (int)routingQueryId 31 | { 32 | return m_queryId; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQueryResponse.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRoutingQueryResponse.h" 2 | #import "WRLDRoutingQueryResponse+Private.h" 3 | 4 | @interface WRLDRoutingQueryResponse () 5 | 6 | @end 7 | 8 | @implementation WRLDRoutingQueryResponse 9 | { 10 | BOOL m_succeeded; 11 | NSMutableArray* m_results; 12 | } 13 | 14 | - (instancetype)initWithStatusAndResults:(bool)succeeded results:(NSMutableArray*)results 15 | { 16 | if (self = [super init]) 17 | { 18 | m_succeeded = succeeded; 19 | m_results = results; 20 | } 21 | 22 | return self; 23 | } 24 | 25 | - (BOOL)succeeded 26 | { 27 | return m_succeeded; 28 | } 29 | 30 | - (NSMutableArray *)results 31 | { 32 | return m_results; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnPathResult+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #include "WRLDPointOnPathResult.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDPointOnPathResult; 10 | 11 | @interface WRLDPointOnPathResult (Private) 12 | 13 | - (instancetype)initWithResultPoint:(CLLocationCoordinate2D)resultPoint 14 | inputPoint:(CLLocationCoordinate2D)inputPoint 15 | distanceFromInputPoint:(double)distanceFromInputPoint 16 | fractionAlongPath:(double)fractionAlongPath 17 | indexOfPathSegmentStartVertex:(int)indexOfPathSegmentStartVertex 18 | indexOfPathSegmentEndVertex:(int)indexOfPathSegmentEndVertex; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /src/public/WRLDRouteSection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | A section of a WRLDRoute. For example, the portion from a point indoors to the exit. 10 | */ 11 | @interface WRLDRouteSection : NSObject 12 | 13 | /*! 14 | @returns A List of the WRLDRouteStep objects that make up this section. 15 | */ 16 | - (NSMutableArray*) steps; 17 | 18 | /*! 19 | @returns The estimated time this section will take to travel in seconds. 20 | */ 21 | - (NSTimeInterval) duration; 22 | 23 | /*! 24 | @returns The estimated distance this section covers in meters. 25 | */ 26 | - (CLLocationDistance) distance; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/public/WRLDRoutingQueryResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A response to a routing query. 9 | Returned when a routing query completes via routingQueryDidComplete method in WRLDMapViewDelegate. 10 | */ 11 | @interface WRLDRoutingQueryResponse : NSObject 12 | 13 | /*! 14 | @returns A boolean indicating whether the search succeeded or not. 15 | */ 16 | - (BOOL) succeeded; 17 | 18 | /*! 19 | Get the results of the query as a List of WRLDRoute objects. 20 | Each route passes through all given waypoints with the first route being the shortest. 21 | 22 | @return The query results. 23 | */ 24 | - (NSMutableArray*) results; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorMap.m: -------------------------------------------------------------------------------- 1 | #pragma 2 | 3 | 4 | #import "WRLDIndoorMap.h" 5 | 6 | 7 | @implementation WRLDIndoorMap 8 | 9 | - (id) initWithId:(NSString *)indoorId name:(NSString *)name floors:(NSArray *)floors userData:(NSString *)userData 10 | { 11 | _indoorId = indoorId; 12 | _name = name; 13 | _floors = floors; 14 | _userData = userData; 15 | return self; 16 | } 17 | 18 | @end 19 | 20 | 21 | @implementation WRLDIndoorMapFloor 22 | 23 | - (id) initWithId:(NSString *)floorId name:(NSString *)name floorIndex:(NSInteger)floorIndex floorNumber:(NSInteger)floorNumber 24 | { 25 | _floorId = floorId; 26 | _name = name; 27 | _floorIndex = floorIndex; 28 | _floorNumber = floorNumber; 29 | return self; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorEntityTapResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | Result values returned by WRLDMap when indoor entities are tapped 10 | */ 11 | @interface WRLDIndoorEntityTapResult : NSObject 12 | 13 | /*! 14 | The screen point that was tapped 15 | */ 16 | @property (nonatomic, readonly) CGPoint screenPoint; 17 | 18 | /*! 19 | The ID of indoor map which contains the indoor entities that were tapped 20 | */ 21 | @property (nonatomic, readonly, copy) NSString* indoorMapId; 22 | 23 | /*! 24 | The ID(s) of indoor entities that were tapped 25 | */ 26 | @property (nonatomic, readonly, copy) NSArray* indoorEntityIds; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/public/WRLDBuildingDimensions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | Represents dimensional information about a building on the map. 10 | */ 11 | @interface WRLDBuildingDimensions : NSObject 12 | 13 | /*! 14 | The altitude of the building’s baseline - nominally at local ground level. 15 | */ 16 | @property (nonatomic, readonly) CLLocationDistance baseAltitude; 17 | 18 | /*! 19 | The altitude of the building’s highest point. 20 | */ 21 | @property (nonatomic, readonly) CLLocationDistance topAltitude; 22 | 23 | /*! 24 | The centroid of the building in plan view. 25 | */ 26 | @property (nonatomic, readonly) CLLocationCoordinate2D centroid; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorMapEntity+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDIndoorMapEntity.h" 4 | #import "EegeoIndoorEntityInformationApi.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | @class WRLDIndoorMapEntity; 9 | 10 | @interface WRLDIndoorMapEntity (Private) 11 | 12 | - (instancetype) initWithIndoorMapEntityId:(NSString*)indoorMapEntityId 13 | indoorMapFloorId:(NSInteger)indoorMapFloorId 14 | coordinate:(CLLocationCoordinate2D)coordinate; 15 | 16 | + (WRLDIndoorMapEntity*) createWRLDIndoorMapEntity:(const std::string&) indoorMapEntityId 17 | indoorMapFloorId:(int)indoorMapFloorId 18 | coordinate:(const Eegeo::Space::LatLong&)coordinate; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorMapDelegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /*! 4 | This protocol defines an interface for receiving messages when an indoor map is entered or exited. 5 | An object implementing this protocol must be set to the indoorMapDelegate property of a WRLDMapView to receive events. 6 | !Deprecated prefer to use NSNotifications WRLDMapViewDidEnterIndoorMap and WRLDMapViewDidExitIndoorMap 7 | */ 8 | 9 | @protocol WRLDIndoorMapDelegate 10 | 11 | @optional 12 | 13 | /// A message sent when the user enters an indoor map. 14 | - (void) didEnterIndoorMap; 15 | 16 | /// A message sent when the user exits an indoor map. 17 | - (void) didExitIndoorMap; 18 | 19 | /// A message sent when user failed to enter an indoor map. 20 | - (void) didEnterIndoorMapFailed:(NSString*)indoorMapId; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /src/private/WRLDPickResult.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDPickResult.h" 2 | #import "WRLDPickResult+Private.h" 3 | 4 | @interface WRLDPickResult () 5 | 6 | @end 7 | 8 | @implementation WRLDPickResult 9 | { 10 | } 11 | 12 | - (instancetype) initWithFeatureFound:(Boolean)found 13 | mapFeatureType:(WRLDMapFeatureType)mapFeatureType 14 | intersectionPoint:(WRLDCoordinateWithAltitude)intersectionPoint 15 | intersectionSurfaceNormal:(WRLDVector3)intersectionSurfaceNormal 16 | { 17 | if (self = [super init]) 18 | { 19 | _found = found; 20 | _mapFeatureType = mapFeatureType; 21 | _intersectionPoint = intersectionPoint; 22 | _intersectionSurfaceNormal = intersectionSurfaceNormal; 23 | } 24 | 25 | return self; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /DebugIndoorControl/DebugIndoorControl.m: -------------------------------------------------------------------------------- 1 | // 2 | // DebugIndoorControl.m 3 | // ios-sdk 4 | // 5 | // Created by Paul Harris on 02/05/2017. 6 | // Copyright © 2017 eeGeo. All rights reserved. 7 | // 8 | 9 | #import "DebugIndoorControl.h" 10 | 11 | @implementation DebugIndoorControl 12 | 13 | -(id)initWithCoder:(NSCoder *)aDecoder{ 14 | if (self = [super initWithCoder:aDecoder]) { 15 | UIView *xibView = [[[NSBundle mainBundle] loadNibNamed:@"DebugIndoorControl" 16 | owner:self 17 | options:nil] objectAtIndex:0]; 18 | xibView.frame = self.bounds; 19 | [self addSubview: xibView]; 20 | } 21 | return self; 22 | } 23 | 24 | - (IBAction)exitIndoorMap:(id)sender { 25 | } 26 | @end 27 | -------------------------------------------------------------------------------- /src/private/WRLDRouteStep+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class WRLDRouteStep; 6 | 7 | @interface WRLDRouteStep (Private) 8 | 9 | - (instancetype)initWithPath:(CLLocationCoordinate2D*)path 10 | pathCount:(int)pathCount 11 | directions:(WRLDRouteDirections*)directions 12 | mode:(WRLDRouteTransportationMode)mode 13 | isIndoors:(BOOL)isIndoors 14 | indoorId:(NSString*)indoorId 15 | isMultiFloor:(BOOL)isMultiFloor 16 | indoorFloorId:(int)indoorFloorId 17 | duration:(NSTimeInterval)duration 18 | distance:(CLLocationDistance)distance 19 | stepName:(NSString*)stepName; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /WrldWidgets/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/public/WRLDPrecacheOperationResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A result of a precache operation. 9 | Returned when a precache operation completes via the completionHandler block passed to [mapView precache:radius:completionHandler]. 10 | */ 11 | @interface WRLDPrecacheOperationResult : NSObject 12 | 13 | /*! 14 | @returns A boolean indicating whether the precache operation succeeded or not. 15 | */ 16 | - (BOOL) succeeded; 17 | 18 | @end 19 | 20 | /*! 21 | The type of the block to be executed when a precache operation completes. This block takes a single parameter, being the WRLDPrecacheOperationResult which represents the completed precache operation's status. 22 | */ 23 | typedef void (^WRLDPrecacheOperationHandler)(WRLDPrecacheOperationResult* result); 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneStartLocation.mm: -------------------------------------------------------------------------------- 1 | 2 | #include "WRLDMapsceneStartLocation.h" 3 | 4 | @interface WRLDMapsceneStartLocation () 5 | 6 | @end 7 | 8 | @implementation WRLDMapsceneStartLocation 9 | { 10 | 11 | } 12 | 13 | -(instancetype)initWithCoordinate:(CLLocationCoordinate2D)coordinate distance:(CLLocationDistance)distance interiorFloorIndex:(int)interiorFloorIndex interiorId:(NSString*)interiorId heading:(double)heading tryStartAtGpsLocation:(bool)tryStartAtGpsLocation 14 | { 15 | self = [super init]; 16 | 17 | if(self) 18 | { 19 | _coordinate = coordinate; 20 | _distance = distance; 21 | _interiorFloorIndex = interiorFloorIndex; 22 | _interiorId = interiorId; 23 | _heading = heading; 24 | _tryStartAtGpsLocation = tryStartAtGpsLocation; 25 | } 26 | 27 | return self; 28 | } 29 | 30 | 31 | @end 32 | 33 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneSearchMenuItem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | /** 6 | * The data for a custom search menu option. Used to define custom search terms for Mapscenes. 7 | */ 8 | @interface WRLDMapsceneSearchMenuItem:NSObject 9 | 10 | /** 11 | * The unique display name of this search option. 12 | */ 13 | @property (nonatomic, readonly) NSString* name; 14 | 15 | /** 16 | * The WRLD Search Tag to query as part of this search option. 17 | */ 18 | @property (nonatomic, readonly) NSString* tag; 19 | 20 | /** 21 | * The Icon key that specifies what icon to display for this search option. 22 | */ 23 | @property (nonatomic, readonly) NSString* iconKey; 24 | 25 | /** 26 | * (Example App Only) Optional configuration for the search to skip external search services. 27 | */ 28 | @property (nonatomic, readonly) bool skipYelpSearch; 29 | 30 | @end 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneRequestOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | /*! 7 | * A set of parameters for creating a mapscene request. 8 | */ 9 | @interface WRLDMapsceneRequestOptions : NSObject 10 | 11 | /*! 12 | * @param shortLinkUrl The full url or the short link of the mapscene to load. 13 | * @param applyMapsceneOnSuccess determine whether the mapscene should be applied once loaded. 14 | * @returns A WRLDMapsceneRequestOptions instance. 15 | */ 16 | -(instancetype)initWithShortLink:(NSString*)shortLinkUrl applyMapsceneOnSuccess:(bool)applyMapsceneOnSuccess; 17 | 18 | /// get the shortlink or url used to load the mapscene 19 | @property (readonly) NSString* shortLinkUrl; 20 | 21 | /// whether to apply the mapscene to the map when successfully loaded 22 | @property (readonly) bool applyMapsceneOnSuccess; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /src/public/WRLDMapOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | 8 | /// Map options specifies a configuration for creating a . 9 | @interface WRLDMapOptions : NSObject 10 | 11 | /*! 12 | Instantiate an instance of WLRDMapOptions with default options. 13 | 14 | @returns A WRLDMapOptions instance. 15 | */ 16 | + (instancetype)mapOptions; 17 | 18 | /*! 19 | The coverage tree manifest url for the map. By default, the map will 20 | load the latest public manifest which is updated regularly. 21 | */ 22 | @property (nonatomic, copy) NSString* coverageTreeManifest; 23 | 24 | /*! 25 | The environment themes manifest url for the map. By default, the map will 26 | load the latest themes manifest which is updated regularly. 27 | */ 28 | @property (nonatomic, copy) NSString* environmentThemesManifest; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/InteriorsExplorerFloorItemView.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | 5 | #import 6 | #include 7 | #include 8 | 9 | @class InteriorsExplorerFloorItemView; 10 | 11 | @interface InteriorsExplorerFloorItemView : UITableViewCell 12 | { 13 | 14 | } 15 | 16 | - (id) initWithParams:(float)labelWidth :(float)labelSpacing :(float)divisionWidth :(float)height :(NSString*)reuseIdentifier; 17 | 18 | - (void) setFloor :(NSString*)floorName :(BOOL)isTop :(BOOL)isBottom; 19 | 20 | @property(nonatomic, retain) UILabel* pFloorNameLabel; 21 | @property(nonatomic, retain) UIView* pLines; 22 | 23 | @property(nonatomic, retain) CAShapeLayer* pDivisionShape; 24 | @property(nonatomic, retain) CAShapeLayer* pTopDivisionShape; 25 | @property(nonatomic, retain) CAShapeLayer* pBottomDivisionShape; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /src/private/WRLDRoute.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRoute.h" 2 | #import "WRLDRoute+Private.h" 3 | 4 | @interface WRLDRoute () 5 | 6 | @end 7 | 8 | @implementation WRLDRoute 9 | { 10 | NSMutableArray* m_sections; 11 | NSTimeInterval m_duration; 12 | CLLocationDistance m_distance; 13 | } 14 | 15 | - (instancetype)initWithSections:(NSMutableArray*)sections 16 | duration:(NSTimeInterval)duration 17 | distance:(CLLocationDistance)distance 18 | { 19 | if (self = [super init]) 20 | { 21 | m_sections = sections; 22 | m_duration = duration; 23 | m_distance = distance; 24 | } 25 | 26 | return self; 27 | } 28 | 29 | - (NSMutableArray*) sections 30 | { 31 | return m_sections; 32 | } 33 | 34 | - (NSTimeInterval) duration 35 | { 36 | return m_duration; 37 | } 38 | 39 | - (CLLocationDistance) distance 40 | { 41 | return m_distance; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneService.mm: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #include "EegeoMapsceneApi.h" 4 | 5 | #import "WRLDMapsceneService+Private.h" 6 | #import "WRLDMapsceneRequest+Private.h" 7 | #import "WRLDMapsceneRequestOptions.h" 8 | 9 | @interface WRLDMapsceneService() 10 | 11 | @end 12 | 13 | @implementation WRLDMapsceneService 14 | { 15 | Eegeo::Api::EegeoMapsceneApi* m_mapsceneApi; 16 | } 17 | 18 | -(instancetype)initWithApi:(Eegeo::Api::EegeoMapsceneApi&)mapsceneApi 19 | { 20 | if (self = [super init]) 21 | { 22 | m_mapsceneApi = &mapsceneApi; 23 | } 24 | 25 | return self; 26 | } 27 | 28 | -(WRLDMapsceneRequest*)requestMapscene :(WRLDMapsceneRequestOptions*)mapsceneRequestOptions 29 | { 30 | 31 | WRLDMapsceneRequest* m_mapsceneRequest = [[WRLDMapsceneRequest alloc] initWithMapsceneApi:m_mapsceneApi :mapsceneRequestOptions]; 32 | 33 | return m_mapsceneRequest; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /src/private/WRLDRouteSection.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRouteSection.h" 2 | #import "WRLDRouteSection+Private.h" 3 | 4 | @interface WRLDRouteSection () 5 | 6 | @end 7 | 8 | @implementation WRLDRouteSection 9 | { 10 | NSMutableArray* m_steps; 11 | NSTimeInterval m_duration; 12 | CLLocationDistance m_distance; 13 | } 14 | 15 | - (instancetype)initWithSteps:(NSMutableArray*)steps 16 | duration:(NSTimeInterval)duration 17 | distance:(CLLocationDistance)distance 18 | { 19 | if (self = [super init]) 20 | { 21 | m_steps = steps; 22 | m_duration = duration; 23 | m_distance = distance; 24 | } 25 | 26 | return self; 27 | } 28 | 29 | - (NSMutableArray*) steps 30 | { 31 | return m_steps; 32 | } 33 | 34 | - (NSTimeInterval) duration 35 | { 36 | return m_duration; 37 | } 38 | 39 | - (CLLocationDistance) distance 40 | { 41 | return m_distance; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /src/public/WRLDRouteDirections.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | Directions information for a WRLDRouteStep of a WRLDRoute. 10 | */ 11 | @interface WRLDRouteDirections : NSObject 12 | 13 | /*! 14 | @returns The type of motion to make at this step. For example, "turn". 15 | */ 16 | - (NSString*) type; 17 | 18 | /*! 19 | @returns A modification to the type. For example, "sharp right". 20 | */ 21 | - (NSString*) modifier; 22 | 23 | /*! 24 | @returns The geographic location this direction applies at. 25 | */ 26 | - (CLLocationCoordinate2D) latLng; 27 | 28 | /*! 29 | @returns The heading before taking this direction. 30 | */ 31 | - (CLLocationDirection) headingBefore; 32 | 33 | /*! 34 | @returns The heading after taking this direction. 35 | */ 36 | - (CLLocationDirection) headingAfter; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /src/public/WRLDRoutingService.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDRoutingQuery.h" 4 | #import "WRLDRoutingQueryOptions.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | A service which allows you to find routes between locations. Created by the createRoutingService 10 | method of the WRLDMapView object. 11 | 12 | This is an Objective-c interface to the [WRLD Routing REST API](https://github.com/wrld3d/wrld-routing-api). 13 | */ 14 | 15 | @interface WRLDRoutingService : NSObject 16 | 17 | /*! 18 | Asynchronously query the routing service. 19 | 20 | The results of the query will be passed 21 | as a WRLDRoutingQueryResponse to the routingQueryDidComplete method in WRLDMapViewDelegate. 22 | 23 | @param options The parameters of the routing query. 24 | @returns A handle to the ongoing query, which can be used to cancel it. 25 | */ 26 | - (WRLDRoutingQuery*)findRoutes:(WRLDRoutingQueryOptions*)options; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQueryWaypoint.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRoutingQueryWaypoint.h" 2 | #import "WRLDRoutingQueryWaypoint+Private.h" 3 | 4 | @interface WRLDRoutingQueryWaypoint () 5 | 6 | @end 7 | 8 | @implementation WRLDRoutingQueryWaypoint 9 | { 10 | CLLocationCoordinate2D m_latLng; 11 | BOOL m_isIndoors; 12 | int m_indoorFloorId; 13 | } 14 | 15 | - (instancetype)initWithLatLng:(CLLocationCoordinate2D)latLng 16 | isIndoors:(BOOL)isIndoors 17 | indoorFloorId:(int)indoorFloorId 18 | { 19 | if (self = [super init]) 20 | { 21 | m_latLng = latLng; 22 | m_isIndoors = isIndoors; 23 | m_indoorFloorId = indoorFloorId; 24 | } 25 | 26 | return self; 27 | } 28 | 29 | - (CLLocationCoordinate2D) latLng 30 | { 31 | return m_latLng; 32 | } 33 | 34 | - (BOOL) isIndoors 35 | { 36 | return m_isIndoors; 37 | } 38 | 39 | - (int) indoorFloorId 40 | { 41 | return m_indoorFloorId; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneSearchConfig.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "WRLDMapsceneSearchConfig.h" 4 | #import "WRLDMapsceneSearchConfig+Private.h" 5 | 6 | @interface WRLDMapsceneSearchConfig() 7 | 8 | @end 9 | 10 | @implementation WRLDMapsceneSearchConfig 11 | 12 | -(instancetype)initWithOutdoorSeachMenuItems:(NSArray *)outdoorSeachMenuItems 13 | performStartupSearch:(bool)performStartupSearch 14 | startupSearchTerm:(NSString*)startupSearchTerm 15 | overrideIndoorSearchMenu:(bool)overrideIndoorSearchMenu 16 | { 17 | self = [super init]; 18 | 19 | if(self) 20 | { 21 | _outdoorSearchMenuItems = outdoorSeachMenuItems; 22 | _performStartupSearch = performStartupSearch; 23 | _startupSearchTerm = startupSearchTerm; 24 | _overrideIndoorSearchMenu = overrideIndoorSearchMenu; 25 | } 26 | 27 | return self; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingContour.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDBuildingContour.h" 2 | #import "WRLDBuildingContour+Private.h" 3 | 4 | @interface WRLDBuildingContour () 5 | 6 | @end 7 | 8 | @implementation WRLDBuildingContour 9 | { 10 | std::vector m_points; 11 | } 12 | 13 | - (instancetype) initWithBottomAltitude:(CLLocationDistance)bottomAltitude 14 | topAltitude:(CLLocationDistance)topAltitude 15 | points:(std::vector)points 16 | { 17 | if (self = [super init]) 18 | { 19 | m_points = points; 20 | 21 | _bottomAltitude = bottomAltitude; 22 | _topAltitude = topAltitude; 23 | _pointCount = (NSUInteger) m_points.size(); 24 | } 25 | 26 | return self; 27 | } 28 | 29 | - (void)getPoints:(CLLocationCoordinate2D *)coordinates 30 | { 31 | for (NSUInteger i=0; i<_pointCount; i++) 32 | { 33 | coordinates[i] = m_points[i]; 34 | } 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /src/private/WRLDMapscene.mm: -------------------------------------------------------------------------------- 1 | #include "WRLDMapscene.h" 2 | #include "WRLDMapscene+Private.h" 3 | #include "WRLDMapsceneStartLocation.h" 4 | #include "WRLDMapsceneDataSources.h" 5 | 6 | @interface WRLDMapscene() 7 | 8 | @end 9 | 10 | @implementation WRLDMapscene 11 | 12 | -(instancetype)initWithName:(NSString*)name 13 | shortLink:(NSString*)shortLink 14 | apiKey:(NSString*)apiKey 15 | startLocation:(WRLDMapsceneStartLocation*)startLocation 16 | dataSources:(WRLDMapsceneDataSources *)dataSources 17 | searchConfig:(WRLDMapsceneSearchConfig *)searchConfig 18 | { 19 | 20 | self = [super init]; 21 | 22 | if(self) 23 | { 24 | _name = name; 25 | _shortLinkUrl=shortLink; 26 | _apiKey=apiKey; 27 | _startLocation = startLocation; 28 | _dataSources = dataSources; 29 | _searchConfig = searchConfig; 30 | } 31 | 32 | return self; 33 | 34 | } 35 | 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnRouteOptions.m: -------------------------------------------------------------------------------- 1 | #import "WRLDPointOnRouteOptions.h" 2 | #import "WRLDPointOnRouteOptions+Private.h" 3 | 4 | @interface WRLDPointOnRouteOptions () 5 | 6 | @end 7 | 8 | @implementation WRLDPointOnRouteOptions 9 | { 10 | NSString* m_indoorMapId; 11 | NSInteger m_indoorMapFloorId; 12 | } 13 | 14 | - (instancetype)init 15 | { 16 | if (self = [super init]) 17 | { 18 | m_indoorMapId = @""; 19 | m_indoorMapFloorId = 0; 20 | } 21 | 22 | return self; 23 | } 24 | 25 | - (WRLDPointOnRouteOptions*) indoorMapId:(NSString*)indoorMapId 26 | { 27 | m_indoorMapId = indoorMapId; 28 | return self; 29 | } 30 | 31 | - (WRLDPointOnRouteOptions*) indoorMapFloorId:(NSInteger)indoorMapFloorId 32 | { 33 | m_indoorMapFloorId = indoorMapFloorId; 34 | return self; 35 | } 36 | 37 | - (NSString*) getIndoorMapId 38 | { 39 | return m_indoorMapId; 40 | } 41 | 42 | - (NSInteger) getIndoorMapFloorId 43 | { 44 | return m_indoorMapFloorId; 45 | } 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /src/public/WRLDPickResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import "WRLDMapFeatureType.h" 6 | #import "WRLDCoordinateWithAltitude.h" 7 | #import "WRLDVector3.h" 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | /*! 12 | Result values returned by WRLDMap picking api methods. 13 | */ 14 | @interface WRLDPickResult : NSObject 15 | 16 | /*! 17 | True if the picking ray intersected with a map feature, else false. 18 | */ 19 | @property (nonatomic, readonly) Boolean found; 20 | 21 | /*! 22 | The type of map feature intersected with, if any. 23 | */ 24 | @property (nonatomic, readonly) WRLDMapFeatureType mapFeatureType; 25 | 26 | /*! 27 | The location of intersection, if any. 28 | */ 29 | @property (nonatomic, readonly) WRLDCoordinateWithAltitude intersectionPoint; 30 | 31 | /*! 32 | The surface normal of the map feature intersected with, if any, in ECEF space. 33 | */ 34 | @property (nonatomic, readonly) WRLDVector3 intersectionSurfaceNormal; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Wrld 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | $(PRODUCT_BUNDLE_SHORT_VERSION) 21 | CFBundleVersion 22 | $(PRODUCT_BUNDLE_VERSION) 23 | NSPrincipalClass 24 | 25 | WRLD_Commit_Hash 26 | $(WRLD_COMMIT_HASH) 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/public/WRLDViewAnchor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | #import 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface WRLDViewAnchor : NSObject 10 | 11 | /*! 12 | * Anchors a View to a point relative to its parent. This will anchor a point on the View to a 13 | * point on its parent. The anchorUV is relative to the size of the View, a value of (0,0) will 14 | * anchor the top left corner of the view and a value of (1,1) will anchor the bottom right 15 | * corner of the view. Negative and values larger than 1 are also valid for anchorUV. 16 | * 17 | * @param view The View to set the position of. 18 | * @param screenPoint The point to anchor to, relative to the parent of the View. 19 | * @param anchorUV The point on the View to use as the anchor point. 20 | */ 21 | + (void)positionView:(UIView *)view 22 | screenPoint:(CGPoint *)screenPoint 23 | anchorUV:(CGPoint *)anchorUV; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /src/public/WRLDBuildingInformation.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import "WRLDBuildingDimensions.h" 6 | #import "WRLDBuildingContour.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | /*! 11 | Information about a building on the map, obtained by adding a WRLDBuildingHighlight object and 12 | to the map. 13 | */ 14 | @interface WRLDBuildingInformation : NSObject 15 | 16 | /*! 17 | A unique identifier for the building. The BuildingId for a building on the map is not 18 | necessarily maintained between versions of the map or Api. 19 | */ 20 | @property (nonatomic, readonly, copy) NSString* buildingId; 21 | 22 | /*! 23 | Summary information about the dimensions of the building. 24 | */ 25 | @property (nonatomic, readonly, copy) WRLDBuildingDimensions* buildingDimensions; 26 | 27 | /*! 28 | An array of WRLDBuildingContour objects, representing the geometry of the building. 29 | */ 30 | @property (nonatomic, readonly, copy) NSArray* contours; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnPathResult.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "WRLDPointOnPathResult.h" 4 | 5 | 6 | @implementation WRLDPointOnPathResult 7 | 8 | - (instancetype)initWithResultPoint:(CLLocationCoordinate2D)resultPoint 9 | inputPoint:(CLLocationCoordinate2D)inputPoint 10 | distanceFromInputPoint:(double)distanceFromInputPoint 11 | fractionAlongPath:(double)fractionAlongPath 12 | indexOfPathSegmentStartVertex:(int)indexOfPathSegmentStartVertex 13 | indexOfPathSegmentEndVertex:(int)indexOfPathSegmentEndVertex 14 | { 15 | if (self = [super init]) 16 | { 17 | _resultPoint = resultPoint; 18 | _inputPoint = inputPoint; 19 | _distanceFromInputPoint = distanceFromInputPoint; 20 | _fractionAlongPath = fractionAlongPath; 21 | _indexOfPathSegmentStartVertex = indexOfPathSegmentStartVertex; 22 | _indexOfPathSegmentEndVertex = indexOfPathSegmentEndVertex; 23 | } 24 | 25 | return self; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /src/public/WRLDMapView+IBAdditions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @interface WRLDMapView (IBAdditions) 6 | 7 | // Properties for use inside Interface Builder for setting the initial location and orientation of the map. 8 | 9 | /*! The latitude in degrees of the location that the map is initially centered on - for use inside Interface Builder only. 10 | */ 11 | @property (nonatomic) IBInspectable double startLatitude; 12 | 13 | /*! The longitude in degrees of the location that the map is initially centered on - for use inside Interface Builder only. 14 | */ 15 | @property (nonatomic) IBInspectable double startLongitude; 16 | 17 | /*! The zoom level that the map will initially be displayed with - for use inside Interface Builder only. 18 | */ 19 | @property (nonatomic) IBInspectable double startZoomLevel; 20 | 21 | /*! The heading in degrees clockwise from north of the initial map view - for use inside Interface Builder only. 22 | */ 23 | @property (nonatomic) IBInspectable double startDirection; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /DevApp/AppMapViewDelegate.m: -------------------------------------------------------------------------------- 1 | #import "AppMapViewDelegate.h" 2 | 3 | @import Wrld; 4 | 5 | @implementation AppMapViewDelegate 6 | 7 | - (void)mapViewRegionWillChange:(WRLDMapView *)mapView 8 | { 9 | NSLog(@"AppMapViewDelegate - map view region will change."); 10 | } 11 | 12 | - (void)mapViewRegionDidChange:(WRLDMapView *)mapView 13 | { 14 | NSLog(@"AppMapViewDelegate - map view region did change."); 15 | } 16 | 17 | - (void)mapViewDidFinishLoadingInitialMap:(WRLDMapView *)mapView 18 | { 19 | NSLog(@"AppMapViewDelegate - streaming of initial map view completed."); 20 | } 21 | 22 | - (void)mapView:(WRLDMapView *)mapView didTapMap:(WRLDCoordinateWithAltitude)coordinateWithAltitude 23 | { 24 | NSLog(@"AppMapViewDelegate - didTapMap: %f, %f, %f", coordinateWithAltitude.coordinate.latitude, coordinateWithAltitude.coordinate.longitude, coordinateWithAltitude.altitude); 25 | } 26 | 27 | - (void)mapView:(WRLDMapView *)mapView didTapMarker:(WRLDMarker *)marker 28 | { 29 | NSLog(@"AppMapViewDelegate - marker tapped: %@", marker.title); 30 | } 31 | 32 | @end 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnRouteResult+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #include "WRLDPointOnRouteResult.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDPointOnRouteResult; 10 | 11 | @interface WRLDPointOnRouteResult (Private) 12 | 13 | - (instancetype)initWithResultPoint:(CLLocationCoordinate2D)resultPoint 14 | inputPoint:(CLLocationCoordinate2D)inputPoint 15 | distanceFromInputPoint:(double)distanceFromInputPoint 16 | fractionAlongRoute:(double)fractionAlongRoute 17 | fractionAlongRouteSection:(double)fractionAlongRouteSection 18 | fractionAlongRouteStep:(double)fractionAlongRouteStep 19 | routeStep:(WRLDRouteStep*)routeStep 20 | routeSection:(WRLDRouteSection*)routeSection 21 | routeSectionIndex:(int)routeSectionIndex 22 | routeStepIndex:(int)routeStepIndex 23 | pathSegmentStartVertexIndex:(int)pathSegmentStartVertexIndex; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /src/private/WRLDStringApiHelpers.mm: -------------------------------------------------------------------------------- 1 | #include "WRLDStringApiHelpers.h" 2 | 3 | @interface WRLDStringApiHelpers () 4 | 5 | @end 6 | 7 | @implementation WRLDStringApiHelpers 8 | { 9 | 10 | } 11 | 12 | + (std::vector) copyToStringVector:(NSArray*) fromNSArray 13 | { 14 | std::vector stringVector; 15 | stringVector.reserve([fromNSArray count]); 16 | 17 | for (NSString* str in fromNSArray) 18 | { 19 | const std::string nativeString = std::string([str UTF8String]); 20 | stringVector.emplace_back(nativeString); 21 | } 22 | 23 | return stringVector; 24 | } 25 | 26 | + (NSArray*) copyToNSStringArray:(const std::vector&) fromStringVector 27 | { 28 | NSMutableArray* stringArray = [[NSMutableArray alloc] initWithCapacity:(fromStringVector.size())]; 29 | for(auto& nativeString : fromStringVector) 30 | { 31 | [stringArray addObject:[NSString stringWithCString: nativeString.c_str() encoding:NSUTF8StringEncoding]]; 32 | } 33 | 34 | return [stringArray copy]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /src/public/WRLDPointOnPathResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /// This type contains information about a projected point on a path. 8 | @interface WRLDPointOnPathResult : NSObject 9 | 10 | /// The closest point on the Path to the target point. 11 | @property (nonatomic, readonly) CLLocationCoordinate2D resultPoint; 12 | 13 | /// The original target point tested against. 14 | @property (nonatomic, readonly) CLLocationCoordinate2D inputPoint; 15 | 16 | /// Absolute distance from the input point (in ECEF space). 17 | @property (nonatomic, readonly) double distanceFromInputPoint; 18 | 19 | /// Fraction that the projected point travelled along current path segment. 20 | @property (nonatomic, readonly) double fractionAlongPath; 21 | 22 | /// Index of the start vertex of the current path segment. 23 | @property (nonatomic, readonly) int indexOfPathSegmentStartVertex; 24 | 25 | /// Index of the end vertex of the current path segment. 26 | @property (nonatomic, readonly) int indexOfPathSegmentEndVertex; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneRequest.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDMapsceneRequest+Private.h" 2 | #import "WRLDMapsceneRequest.h" 3 | #import "WRLDMapsceneRequestOptions.h" 4 | 5 | #include "EegeoMapsceneApi.h" 6 | #include "Mapscene.h" 7 | 8 | @interface WRLDMapsceneRequest () 9 | 10 | @end 11 | 12 | @implementation WRLDMapsceneRequest 13 | { 14 | Eegeo::Api::EegeoMapsceneApi* m_mapsceneApi; 15 | Eegeo::Mapscenes::MapsceneRequestId m_requestId; 16 | } 17 | 18 | -(instancetype)initWithMapsceneApi:(Eegeo::Api::EegeoMapsceneApi*)mapsceneApi :(WRLDMapsceneRequestOptions *)mapsceneRequestOptions 19 | { 20 | self = [super init]; 21 | 22 | if(self) 23 | { 24 | m_mapsceneApi = mapsceneApi; 25 | m_requestId = (Eegeo::Mapscenes::MapsceneRequestId)m_mapsceneApi->LoadMapscene(std::string([mapsceneRequestOptions.shortLinkUrl UTF8String]), mapsceneRequestOptions.applyMapsceneOnSuccess); 26 | } 27 | 28 | return self; 29 | } 30 | 31 | -(void)cancel 32 | { 33 | m_mapsceneApi->CancelRequest(m_requestId); 34 | } 35 | 36 | -(int)requestId 37 | { 38 | return m_requestId; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneService.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "WRLDMapsceneRequest.h" 3 | #include "WRLDMapsceneRequestOptions.h" 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | * A service which allows you to request Mapscenes, as created by the WRLD Map Designer. 9 | * Created by the createMapsceneService method of the EegeoMap object. 10 | * 11 | * This is a Java interface to the WRLD MAPSCENE REST API (https://github.com/wrld3d/wrld-mapscene-api). 12 | * 13 | * It also supports additional options for applying a Mapscene to a map when you successfully load it. 14 | */ 15 | @interface WRLDMapsceneService : NSObject 16 | 17 | /*! 18 | * Begins a Mapscene request with the given options. The results will be passed via the WRLDMapViewDelegate 19 | * mapsceneRequestDidComplete method. 20 | * @param mapsceneRequestOptions The paramaters of the request. 21 | * @return An instance of a WRLDMapsceneRequest. This can be used to cancel the request before it is completed. 22 | */ 23 | -(WRLDMapsceneRequest*)requestMapscene :(WRLDMapsceneRequestOptions*)mapsceneRequestOptions; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /WRLD.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # run `pod spec lint WRLD.podspec' before submitting. 3 | # 4 | 5 | Pod::Spec.new do |s| 6 | 7 | s.name = 'WRLD' 8 | s.version = '##WRLD_IOS_SDK_VERSION##' 9 | s.summary = '3D maps and indoor maps for iOS' 10 | 11 | s.description = 'Display 3D outdoor and indoor maps and markers using OpenGL' 12 | 13 | s.homepage = 'https://github.com/wrld3d/ios-api' 14 | # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' 15 | s.license = { :type => 'BSD 2-Clause', :file => 'LICENSE.md' } 16 | s.author = { 'WRLD' => 'support@wrld3d.com' } 17 | s.documentation_url = 'https://docs.wrld3d.com/ios/latest/docs/api/' 18 | 19 | s.source = { 20 | :http => "https://s3.amazonaws.com/eegeo-static/wrld-ios-sdk/builds/wrld-ios-sdk-v#{s.version.to_s}.zip", 21 | :flatten => true 22 | } 23 | 24 | s.platform = :ios 25 | s.ios.deployment_target = '8.0' 26 | s.requires_arc = true 27 | 28 | 29 | s.vendored_frameworks = 'Wrld.framework', 'WrldWidgets.framework' 30 | s.module_name = 'Wrld' 31 | end 32 | 33 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneSearchConfig.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #import 3 | 4 | @class WRLDMapsceneSearchMenuItem; 5 | 6 | /** 7 | * The optional configuration to apply to the WRLD Searchbox Widget for a given Mapscene. 8 | */ 9 | @interface WRLDMapsceneSearchConfig:NSObject 10 | 11 | /** 12 | * The list of custom Searches defined in the Searchbox Widget's Find menu when viewing the 13 | * outdoor map. 14 | */ 15 | @property (nonatomic, readonly) NSArray * outdoorSearchMenuItems; 16 | 17 | /** 18 | * Optional flag to specify an initial search to perform when Mapscene is loaded. 19 | */ 20 | @property (nonatomic, readonly) bool performStartupSearch; 21 | 22 | /** 23 | * Optional search term to execute if the 'performStartupSearch' option is set. 24 | */ 25 | @property (nonatomic, readonly) NSString* startupSearchTerm; 26 | 27 | /** 28 | * Option to use the outdoorSearchMenuItems configuration even in Indoor Maps that have their 29 | * own set of defined Search Menu items. 30 | */ 31 | @property (nonatomic, readonly) bool overrideIndoorSearchMenu; 32 | 33 | @end 34 | 35 | -------------------------------------------------------------------------------- /src/public/WRLDPointOnRouteOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /*! 10 | Defines creation parameters for a PointOnRoute. 11 | */ 12 | @interface WRLDPointOnRouteOptions : NSObject 13 | 14 | /*! 15 | * Sets the indoor map ID to allow the point to test against routes indoors. 16 | * 17 | * @param indoorMapId The ID of the indoor map. 18 | * @return The WRLDPointOnRouteOptions object on which the method was called, with the new indoorMapId set. 19 | */ 20 | - (WRLDPointOnRouteOptions*) indoorMapId:(NSString*)indoorMapId; 21 | 22 | /*! 23 | * Sets the indoor map floor ID to specify the floor and the point and route are on. 24 | * 25 | * @param indoorMapFloorId The floor ID of the indoor map. 26 | * @return The PointOnRouteOptions object on which the method was called, with the new indoorMapFloorId set. 27 | */ 28 | - (WRLDPointOnRouteOptions*) indoorMapFloorId:(NSInteger)indoorMapFloorId; 29 | 30 | - (NSString*) getIndoorMapId; 31 | 32 | - (NSInteger) getIndoorMapFloorId; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /src/private/WRLDPrecacheOperation.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDPrecacheOperation.h" 2 | #import "WRLDPrecacheOperation+Private.h" 3 | 4 | @interface WRLDPrecacheOperation () 5 | 6 | @end 7 | 8 | @implementation WRLDPrecacheOperation 9 | { 10 | Eegeo::Api::EegeoPrecacheApi* m_precacheApi; 11 | int m_operationId; 12 | WRLDPrecacheOperationHandler m_completionHandler; 13 | } 14 | 15 | - (instancetype)initWithId:(int)operationId precacheApi:(Eegeo::Api::EegeoPrecacheApi&)precacheApi completionHandler:(WRLDPrecacheOperationHandler)completionHandler 16 | { 17 | if (self = [super init]) 18 | { 19 | m_precacheApi = &precacheApi; 20 | m_operationId = operationId; 21 | m_completionHandler = completionHandler; 22 | } 23 | 24 | return self; 25 | } 26 | 27 | - (void)completeWithResult:(WRLDPrecacheOperationResult*)response 28 | { 29 | if (m_completionHandler) 30 | { 31 | m_completionHandler(response); 32 | } 33 | } 34 | 35 | - (void)cancel 36 | { 37 | m_precacheApi->CancelPrecacheOperation(m_operationId); 38 | } 39 | 40 | - (int)precacheOperationId 41 | { 42 | return m_operationId; 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /src/public/WRLDMapscene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | @class WRLDMapsceneStartLocation; 6 | @class WRLDMapsceneDataSources; 7 | @class WRLDMapsceneSearchConfig; 8 | 9 | /*! 10 | * The data that defines a mapscene, as created by the Map Designer or the mapscene REST Api. 11 | */ 12 | @interface WRLDMapscene: NSObject 13 | 14 | /// The name of this mapcene. 15 | @property (readonly) NSString* name; 16 | 17 | /// The shortend URL of the mapscene. 18 | @property (readonly) NSString* shortLinkUrl; 19 | 20 | /// The API key to use for authenticating with the WRLD SDK. This is also used to link associated POI sets for use with the Searchbox Widget and POI Api. 21 | @property (readonly) NSString* apiKey; 22 | 23 | /// The initial start location of the mapscene. 24 | @property (readonly) WRLDMapsceneStartLocation* startLocation; 25 | 26 | /// The configuration of the data and themes to load for this mapscene. 27 | @property (readonly) WRLDMapsceneDataSources* dataSources; 28 | 29 | /// Optional configuration of the Searchbox Widget for this mapscene. 30 | @property (readonly) WRLDMapsceneSearchConfig* searchConfig; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /src/public/WRLDAutocompleteOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A set of parameters for an autocomplete search. 9 | */ 10 | @interface WRLDAutocompleteOptions : NSObject 11 | 12 | /*! 13 | @returns The text to search for. 14 | */ 15 | - (NSString*)getQuery; 16 | 17 | /*! 18 | Set the query text. 19 | @param query The text to search for. 20 | */ 21 | - (void)setQuery:(NSString*)query; 22 | 23 | /*! 24 | @returns The latitude and longitude to search around. 25 | */ 26 | - (CLLocationCoordinate2D)getCenter; 27 | 28 | /*! 29 | Set the center coordinate. 30 | @param center The latitude and longitude to search around. 31 | */ 32 | - (void)setCenter:(CLLocationCoordinate2D)center; 33 | 34 | /*! 35 | @returns True if setNumber has been called. 36 | */ 37 | - (BOOL)usesNumber; 38 | 39 | /*! 40 | @returns The search result limit. 41 | */ 42 | - (NSInteger)getNumber; 43 | 44 | /*! 45 | Sets the maximum number of search results to return. 46 | @param number The search result limit. 47 | */ 48 | - (void)setNumber:(NSInteger)number; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingApiHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "BuildingHighlightCreateParams.h" 6 | #include "BuildingInformation.h" 7 | #include "BuildingDimensions.h" 8 | #include "BuildingContour.h" 9 | #include "LatLongAltitude.h" 10 | 11 | #import 12 | 13 | #import "WRLDBuildingHighlightOptions.h" 14 | #import "WRLDBuildingDimensions.h" 15 | #import "WRLDBuildingInformation.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @interface WRLDBuildingApiHelpers : NSObject 20 | 21 | + (Eegeo::BuildingHighlights::BuildingHighlightCreateParams) createBuildingHighlightCreateParams:(WRLDBuildingHighlightOptions*) withBuildingHighlightOptions; 22 | 23 | + (WRLDBuildingDimensions*) createWRLDBuildingDimensions:(const Eegeo::BuildingHighlights::BuildingDimensions&) withBuildingDimensions; 24 | 25 | + (NSArray*) createWRLDBuildingContours:(const std::vector&) withBuildingContours; 26 | 27 | + (WRLDBuildingInformation*) createWRLDBuildingInformation:(const Eegeo::BuildingHighlights::BuildingInformation&) withBuildingInformation; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /src/public/WRLDCoordinateBounds.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | 6 | /*! 7 | @struct WRLDCoordinateBounds 8 | @brief Contains the WGS84 extents of a bounded region of the map. 9 | */ 10 | typedef struct { 11 | CLLocationCoordinate2D sw; 12 | CLLocationCoordinate2D ne; 13 | } WRLDCoordinateBounds; 14 | 15 | /*! 16 | @function WRLDCoordinateBoundsMake 17 | @brief Create an WRLDCoordinateBounds instance from a pair of WGS84 coordinates. 18 | @param sw The south western point. 19 | @param ne The north eastern point. 20 | @return Returns an WRLDCoordinateBounds instance for the region. 21 | */ 22 | WRLDCoordinateBounds WRLDCoordinateBoundsMake(CLLocationCoordinate2D sw, CLLocationCoordinate2D ne); 23 | 24 | /*! 25 | @function WRLDCoordinateBoundsMake 26 | @brief Create an WRLDCoordinateBounds instance from a collection of WGS84 coordinates. 27 | @param coordinates The collection of coordinates. 28 | @param count The number of coordinates. 29 | @return Returns an WRLDCoordinateBounds instance for the region. 30 | */ 31 | WRLDCoordinateBounds WRLDCoordinateBoundsFromCoordinatesMake(CLLocationCoordinate2D* coordinates, NSUInteger count); 32 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorEntityApiHelpers.mm: -------------------------------------------------------------------------------- 1 | #include "WRLDIndoorEntityApiHelpers.h" 2 | 3 | #import "WRLDIndoorEntityTapResult+Private.h" 4 | #import "WRLDStringApiHelpers.h" 5 | 6 | @interface WRLDIndoorEntityApiHelpers () 7 | 8 | @end 9 | 10 | @implementation WRLDIndoorEntityApiHelpers 11 | { 12 | 13 | } 14 | 15 | + (WRLDIndoorEntityTapResult*) createIndoorEntityTapResult:(const Eegeo::Api::IndoorEntityPickedMessage&) withIndoorEntityPickedMessage 16 | { 17 | Eegeo::v2 screenPoint = withIndoorEntityPickedMessage.ScreenPoint; 18 | std::string indoorMapId = withIndoorEntityPickedMessage.IndoorMapId.Value(); 19 | WRLDIndoorEntityTapResult* indoorEntity = [[WRLDIndoorEntityTapResult alloc] initWithScreenPoint:CGPointMake(screenPoint.x, screenPoint.y) 20 | indoorMapId:[NSString stringWithCString: indoorMapId.c_str() encoding:NSUTF8StringEncoding] 21 | indoorEntityIds:[WRLDStringApiHelpers copyToNSStringArray:withIndoorEntityPickedMessage.EntityIds]]; 22 | 23 | return indoorEntity; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /wrld_cpp_sdk.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |m| 2 | 3 | m.name = 'wrld_cpp_sdk' 4 | m.version = '0.0.1' 5 | 6 | m.summary = 'WRLD C++11 SDK' 7 | m.description = 'WRLD C++11 SDK' 8 | m.homepage = 'http://www.wrld3d.com' 9 | m.author = { 'WRLD' => 'support@wrld3d.com' } 10 | 11 | m.source = { 12 | :http => "http://s3.amazonaws.com/eegeo-static/sdk.package.ios.cpp11.tar.gz", 13 | :flatten => true 14 | } 15 | 16 | m.platform = :ios 17 | m.ios.deployment_target = '8.0' 18 | 19 | m.source_files = '**/*.h', 'version.txt' 20 | m.vendored_library = 'libapps-on-maps-cpp11.a', 'libapps-on-maps-cpp11-sim.a', 'libeegeo-api.a', 'libeegeo-api-sim.a', 'libeegeo-api-host.a', 'libeegeo-api-host-sim.a', 'libturbojpeg.a', 'libuv.a', 'libcurl.a' 21 | 22 | m.module_name = 'WrldSdk' 23 | m.frameworks = 'CoreLocation', 'SystemConfiguration', 'MobileCoreServices', 'GLKit', 'QuartzCore', 'OpenGLES', 'CoreGraphics', 'UIKit' 24 | m.libraries = 'c++','z' 25 | m.xcconfig = { 26 | 'OTHER_CPLUSPLUSFLAGS' => '-DCOMPILE_CPP_11=1', 27 | 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11', 28 | 'CLANG_CXX_LIBRARY' => 'libc++' 29 | } 30 | 31 | end 32 | -------------------------------------------------------------------------------- /src/private/WRLDAutocompleteOptions.mm: -------------------------------------------------------------------------------- 1 | 2 | #import "WRLDAutocompleteOptions.h" 3 | 4 | @interface WRLDAutocompleteOptions () 5 | 6 | @end 7 | 8 | @implementation WRLDAutocompleteOptions 9 | { 10 | NSString* m_query; 11 | CLLocationCoordinate2D m_center; 12 | BOOL m_useNumber; 13 | NSInteger m_number; 14 | } 15 | 16 | - (instancetype)init { 17 | self = [super init]; 18 | if (self) 19 | { 20 | m_query = @""; 21 | m_center = CLLocationCoordinate2DMake(0, 0); 22 | m_useNumber = false; 23 | m_number = 0; 24 | } 25 | return self; 26 | } 27 | 28 | - (NSString*)getQuery 29 | { 30 | return m_query; 31 | } 32 | 33 | - (void)setQuery:(NSString*)query 34 | { 35 | m_query = query; 36 | } 37 | 38 | - (CLLocationCoordinate2D)getCenter 39 | { 40 | return m_center; 41 | } 42 | 43 | - (void)setCenter:(CLLocationCoordinate2D)center 44 | { 45 | m_center = center; 46 | } 47 | 48 | - (BOOL)usesNumber 49 | { 50 | return m_useNumber; 51 | } 52 | 53 | - (NSInteger)getNumber 54 | { 55 | return m_number; 56 | } 57 | 58 | - (void)setNumber:(NSInteger)number 59 | { 60 | m_useNumber = true; 61 | m_number = number; 62 | } 63 | 64 | @end 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /issue_template.md: -------------------------------------------------------------------------------- 1 | 10 | 11 | ### Description 12 | 13 | [Description of the issue] 14 | 15 | ### Steps to Reproduce 16 | 17 | 1. [First Step] 18 | 2. [Second Step] 19 | 3. [and so on...] 20 | 21 | **Expected behavior:** [What you expect to happen] 22 | 23 | **Actual behavior:** [What actually happens] 24 | 25 | **Reproduces how often:** [What percentage of the time does it reproduce?] 26 | 27 | ### Additional Information 28 | 29 | Any additional information, configuration or data that might be necessary to reproduce the issue, e.g.: 30 | * What device, operating system version & version of this project are you using? 31 | * If possible, a minimal iOS project that reproduces the problem. (Please remove any sensitive credentials or API keys before posting, though!) 32 | -------------------------------------------------------------------------------- /src/private/WRLDRouteView+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "WRLDMapView+Private.h" 4 | #include "WRLDRoute+Private.h" 5 | #include "WRLDRouteViewOptions.h" 6 | 7 | //NS_ASSUME_NONNULL_BEGIN 8 | 9 | @class WRLDRouteView; 10 | 11 | @interface WRLDRouteView (Private) 12 | 13 | - (instancetype)initWithMapView:(WRLDMapView*)map 14 | route:(WRLDRoute*)route 15 | option:(WRLDRouteViewOptions*)options; 16 | 17 | - (void)addLineCreationParamsForStep:(WRLDRouteStep*)routeStep 18 | stepBefore:(WRLDRouteStep*)routeStepBefore 19 | stepAfter:(WRLDRouteStep*)routeStepAfter 20 | flattenedStepIndex:(int)flattenedStepIndex 21 | color:(UIColor*)color; 22 | 23 | - (void)addLineCreationParamsForStep:(WRLDRouteStep*)routeStep 24 | flattenedStepIndex:(int)flattenedStepIndex; 25 | 26 | - (void)addLineCreationParamsForStep:(WRLDRouteStep*)routeStep 27 | stepIndex:(int)stepIndex 28 | closestPointOnPath:(CLLocationCoordinate2D)closestPointOnPath 29 | splitIndex:(int)splitIndex 30 | @end 31 | 32 | //NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingServiceHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "RoutingQueryResponse.h" 4 | 5 | #import "WRLDRoute.h" 6 | #import "WRLDRouteSection.h" 7 | #import "WRLDRouteDirections.h" 8 | #import "WRLDRouteStep.h" 9 | #import "WRLDRoutingQueryResponse.h" 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface WRLDRoutingServiceHelpers : NSObject 16 | 17 | + (WRLDRoutingQueryResponse*)createWRLDRoutingQueryResponse:(const Eegeo::Routes::Webservice::RoutingQueryResponse&)withResponse; 18 | 19 | + (WRLDRoute*)createWRLDRoute:(const Eegeo::Routes::Webservice::RouteData&)withRoute; 20 | 21 | + (WRLDRouteSection*)createWRLDRouteSection:(const Eegeo::Routes::Webservice::RouteSection&)withSection; 22 | 23 | + (WRLDRouteStep*)createWRLDRouteStep:(const Eegeo::Routes::Webservice::RouteStep&)withStep; 24 | 25 | + (WRLDRouteDirections*)createWRLDRouteDirections:(const Eegeo::Routes::Webservice::RouteDirections&)withDirections; 26 | 27 | + (CLLocationCoordinate2D*)createWRLDRouteStepPath:(const std::vector&) withPath; 28 | 29 | + (Eegeo::Routes::Webservice::TransportationMode) ToWRLDTransportationMode:(WRLDRouteTransportationMode)type; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /src/public/WRLDBuildingContour.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | Represents a building or part of building as a polygon with minimum and maximum altitudes. 10 | This can be used to construct an extruded polygon (prism) to visually represent the building. 11 | Complex buildings may be made up of multiple WRLDBuildingContour. 12 | */ 13 | @interface WRLDBuildingContour : NSObject 14 | 15 | /*! 16 | The minimum altitude above sea level. 17 | */ 18 | @property (nonatomic, readonly) CLLocationDistance bottomAltitude; 19 | 20 | /*! 21 | The maximum altitude above sea level. 22 | */ 23 | @property (nonatomic, readonly) CLLocationDistance topAltitude; 24 | 25 | /*! 26 | The count of CLLocationCoordinate2D points in this contour. 27 | */ 28 | @property (nonatomic, readonly) NSUInteger pointCount; 29 | 30 | /*! 31 | Get points that are vertices of the building outline polygon, ordered clockwise from above. 32 | 33 | @param coordinates The array of coordinates for points. It must be large enough to hold the coordinates. 34 | */ 35 | 36 | - (void)getPoints:(CLLocationCoordinate2D *)coordinates; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /src/private/WRLDOverlayImpl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDOverlay.h" 4 | 5 | #include "EegeoApi.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | typedef NS_ENUM(NSInteger, WRLDOverlayType) 10 | { 11 | WRLDOverlayMarker, 12 | 13 | WRLDOverlayPolygon, 14 | 15 | WRLDOverlayPolyline, 16 | 17 | WRLDOverlayPositioner, 18 | 19 | WRLDOverlayBuildingHighlight, 20 | 21 | WRLDOverlayIndoorMapInformation, 22 | 23 | WRLDOverlayProp 24 | }; 25 | 26 | typedef struct _WRLDOverlayId 27 | { 28 | WRLDOverlayType overlayType; 29 | int nativeHandle; 30 | 31 | } WRLDOverlayId; 32 | 33 | struct WRLDOverlayIdHash 34 | { 35 | size_t operator() (const WRLDOverlayId& x) const 36 | { 37 | return x.overlayType ^ x.nativeHandle; 38 | } 39 | }; 40 | 41 | 42 | struct WRLDOverlayIdEqual 43 | { 44 | bool operator() (const WRLDOverlayId& a, const WRLDOverlayId& b) const 45 | { 46 | return a.overlayType == b.overlayType && a.nativeHandle == b.nativeHandle; 47 | } 48 | }; 49 | 50 | @protocol WRLDOverlayImpl 51 | 52 | - (void) createNative:(Eegeo::Api::EegeoMapApi&) mapApi; 53 | 54 | - (void) destroyNative; 55 | 56 | - (WRLDOverlayId) getOverlayId; 57 | 58 | 59 | @end 60 | 61 | 62 | NS_ASSUME_NONNULL_END 63 | -------------------------------------------------------------------------------- /src/private/WRLDApi.m: -------------------------------------------------------------------------------- 1 | #import "WRLDApi.h" 2 | #import "WRLDApi+Private.h" 3 | 4 | 5 | @interface WRLDApi () 6 | 7 | @property (atomic) NSString* apiKey; 8 | 9 | @end 10 | 11 | 12 | @implementation WRLDApi 13 | 14 | + (NSString*)apiKey 15 | { 16 | return [WRLDApi eegeoApiInstance].apiKey; 17 | } 18 | 19 | + (void)load 20 | { 21 | [WRLDApi eegeoApiInstance].apiKey = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"WrldApiKey"]; 22 | 23 | if([WRLDApi eegeoApiInstance].apiKey.length != 32) 24 | { 25 | NSLog(@"No valid API key set. Set a valid API key in the Info.plist file"); 26 | } 27 | } 28 | 29 | + (instancetype)eegeoApiInstance 30 | { 31 | 32 | static dispatch_once_t s_oneTimeInit; 33 | static WRLDApi *s_eegeoApiInstance; 34 | 35 | if ([[NSThread currentThread] isMainThread]) 36 | { 37 | dispatch_once(&s_oneTimeInit, ^{ 38 | s_eegeoApiInstance = [[self alloc] init]; 39 | }); 40 | 41 | } 42 | else 43 | { 44 | dispatch_sync(dispatch_get_main_queue(), ^{ 45 | dispatch_once(&s_oneTimeInit, ^{ 46 | s_eegeoApiInstance = [[self alloc] init]; 47 | }); 48 | }); 49 | } 50 | return s_eegeoApiInstance; 51 | } 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /src/private/WRLDMapsceneServiceHelpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "MapsceneRequestResponse.h" 4 | 5 | @class WRLDMapsceneRequestResponse; 6 | @class WRLDMapscene; 7 | @class WRLDMapsceneStartLocation; 8 | @class WRLDMapsceneDataSources; 9 | @class WRLDMapsceneSearchConfig; 10 | @class WRLDMapsceneSearchMenuItem; 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface WRLDMapsceneServiceHelpers : NSObject 17 | 18 | + (WRLDMapsceneRequestResponse*)createWRLDMapsceneRequestResponse:(const Eegeo::Mapscenes::MapsceneRequestResponse&)withResponse; 19 | 20 | + (WRLDMapscene*)createWRLDMapscene:(const Eegeo::Mapscenes::Mapscene&)withMapscene; 21 | 22 | + (WRLDMapsceneDataSources*)createWRLDMapsceneDataSources:(const Eegeo::Mapscenes::MapsceneDataSources&)withDataSources; 23 | 24 | + (WRLDMapsceneStartLocation*)createWRLDMapsceneStartLocation:(const Eegeo::Mapscenes::MapsceneStartLocation&)withStartLocation; 25 | 26 | + (WRLDMapsceneSearchConfig*)createWRLDMapsceneSearchConfig:(const Eegeo::Mapscenes::MapsceneSearchConfig&)withSearchConfig; 27 | 28 | + (WRLDMapsceneSearchMenuItem*)createWRLDMapsceneSearchMenuItem:(const Eegeo::Mapscenes::MapsceneSearchMenuItem&)withSearchMenuItem; 29 | @end 30 | 31 | 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /src/public/WRLDMapFeatureType.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | Types of feature geometry present on the map. 9 | */ 10 | typedef NS_ENUM(NSInteger, WRLDMapFeatureType) 11 | { 12 | /// No geometry feature. 13 | WRLDFeatureTypeNone, 14 | 15 | /// The feature geometry is the ground. 16 | WRLDFeatureTypeGround, 17 | 18 | /// The feature geometry are buildings. 19 | WRLDFeatureTypeBuilding, 20 | 21 | /// The feature geometry are trees. 22 | WRLDFeatureTypeTree, 23 | 24 | /// The feature geometry is road transport. 25 | WRLDFeatureTypeTransportRoad, 26 | 27 | /// The feature geometry is rail transport. 28 | WRLDFeatureTypeTransportRail, 29 | 30 | /// The feature geometry is tram transport. 31 | WRLDFeatureTypeTransportTram, 32 | 33 | /// The feature geometry is indoor map structures. 34 | WRLDFeatureTypeIndoorStructure, 35 | 36 | /// The feature geometry is indoor map highlights. 37 | WRLDFeatureTypeIndoorHighlight 38 | }; 39 | 40 | #ifdef __cplusplus 41 | extern "C" { 42 | #endif 43 | NSString* WRLDMapFeatureTypeToString(WRLDMapFeatureType featureType); 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2021, WRLD 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorMap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | 6 | /// An object containing information about a floor of an indoor map. 7 | @interface WRLDIndoorMapFloor: NSObject 8 | 9 | /// A short string identifier for a floor, unique within its indoor map. For example, "G". 10 | @property (readonly) NSString* floorId; 11 | 12 | /// The human-readable name of the floor. For example, "Ground Floor". 13 | @property (readonly) NSString* name; 14 | 15 | /// The index of this floor relative to the bottom floor of its indoor map. 16 | @property (readonly) NSInteger floorIndex; 17 | 18 | /// The floor number of this floor. For example, 1. 19 | @property (readonly) NSInteger floorNumber; 20 | 21 | @end 22 | 23 | 24 | /// An object containing information about an indoor map. 25 | @interface WRLDIndoorMap: NSObject 26 | 27 | /// A string representing a unique ID for this indoor map 28 | @property (readonly) NSString* indoorId; 29 | 30 | /// The human-readable name of this indoor map. 31 | @property (readonly) NSString* name; 32 | 33 | /// An array of WRLDIndoorMapFloor objects, corresponding to the floors of this indoor map. 34 | @property (readonly) NSArray* floors; 35 | 36 | /// Optional additional JSON data associated with this indoor map. 37 | @property (readonly) NSString* userData; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorMapEntity.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | * Represents infomation about an identifiable feature on an indoor map. 10 | * These correspond to features within a level GeoJSON in an indoor map submission via the WRLD Indoor Map REST API. 11 | * See [https://github.com/wrld3d/wrld-indoor-maps-api/blob/master/FORMAT.md](https://github.com/wrld3d/wrld-indoor-maps-api/blob/master/FORMAT.md) 12 | */ 13 | @interface WRLDIndoorMapEntity : NSObject 14 | 15 | /// The string identifier of this indoor map entity. 16 | @property (nonatomic, readonly, copy) NSString* indoorMapEntityId; 17 | 18 | /// The identifier of the indoor map floor on which this indoor map entity is positioned. 19 | @property (nonatomic, readonly) NSInteger indoorMapFloorId; 20 | 21 | /*! 22 | * The location of this indoor map entity. Although indoor map entities can represent area 23 | * features such as rooms or desks, this position provides a point that is in the center of the 24 | * feature. As such, it is suitable for use if locating a WRLDMarker for this entity, or if 25 | * positioning the camera to look at this entity. 26 | */ 27 | @property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /src/private/WRLDRouteDirections.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRouteDirections.h" 2 | #import "WRLDRouteDirections+Private.h" 3 | 4 | @interface WRLDRouteDirections () 5 | 6 | @end 7 | 8 | @implementation WRLDRouteDirections 9 | { 10 | NSString* m_type; 11 | NSString* m_modifier; 12 | CLLocationCoordinate2D m_latLng; 13 | CLLocationDirection m_headingBefore; 14 | CLLocationDirection m_headingAfter; 15 | 16 | } 17 | 18 | - (instancetype)initWithType:(NSString*)type 19 | modifier:(NSString*)modifier 20 | latLng:(CLLocationCoordinate2D)latLng 21 | headingBefore:(CLLocationDirection)headingBefore 22 | headingAfter:(CLLocationDirection)headingAfter 23 | { 24 | if (self = [super init]) 25 | { 26 | m_type = type; 27 | m_modifier = modifier; 28 | m_latLng = latLng; 29 | m_headingBefore = headingBefore; 30 | m_headingAfter = headingAfter; 31 | } 32 | 33 | return self; 34 | } 35 | 36 | - (NSString*) type 37 | { 38 | return m_type; 39 | } 40 | 41 | - (NSString*) modifier 42 | { 43 | return m_modifier; 44 | } 45 | 46 | - (CLLocationCoordinate2D) latLng 47 | { 48 | return m_latLng; 49 | } 50 | 51 | - (CLLocationDirection) headingBefore 52 | { 53 | return m_headingBefore; 54 | } 55 | 56 | - (CLLocationDirection) headingAfter 57 | { 58 | return m_headingAfter; 59 | } 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /src/private/WRLDMapFeatureType.m: -------------------------------------------------------------------------------- 1 | #import "WRLDMapFeatureType.h" 2 | 3 | NSString* WRLDMapFeatureTypeToString(WRLDMapFeatureType featureType) 4 | { 5 | NSString* featureTypeString; 6 | switch (featureType) 7 | { 8 | case WRLDFeatureTypeGround: 9 | featureTypeString = @"WRLDFeatureTypeGround"; 10 | break; 11 | case WRLDFeatureTypeBuilding: 12 | featureTypeString = @"WRLDFeatureTypeBuilding"; 13 | break; 14 | case WRLDFeatureTypeTree: 15 | featureTypeString = @"WRLDFeatureTypeTree"; 16 | break; 17 | case WRLDFeatureTypeTransportRoad: 18 | featureTypeString = @"WRLDFeatureTypeTransportRoad"; 19 | break; 20 | case WRLDFeatureTypeTransportRail: 21 | featureTypeString = @"WRLDFeatureTypeTransportRail"; 22 | break; 23 | case WRLDFeatureTypeTransportTram: 24 | featureTypeString = @"WRLDFeatureTypeTransportTram"; 25 | break; 26 | case WRLDFeatureTypeIndoorStructure: 27 | featureTypeString = @"WRLDFeatureTypeIndoorStructure"; 28 | break; 29 | case WRLDFeatureTypeIndoorHighlight: 30 | featureTypeString = @"WRLDFeatureTypeIndoorHighlight"; 31 | break; 32 | 33 | default: 34 | featureTypeString = @"WRLDFeatureTypeNone"; 35 | break; 36 | } 37 | return featureTypeString; 38 | } 39 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingPolylineCreateParams.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "VectorMath.h" 4 | #include "LatLongAltitude.h" 5 | 6 | #include 7 | 8 | class WRLDRoutingPolylineCreateParams 9 | { 10 | public: 11 | WRLDRoutingPolylineCreateParams( 12 | const std::vector& coordinates, 13 | bool isForwardColor, 14 | NSString* indoorMapId, 15 | int indoorMapFloorId, 16 | const std::vector& perPointElevations) 17 | : m_coordinates(coordinates) 18 | , m_isForwardColor(isForwardColor) 19 | , m_indoorMapId(indoorMapId) 20 | , m_indoorMapFloorId(indoorMapFloorId) 21 | , m_perPointElevations(perPointElevations) 22 | { 23 | } 24 | 25 | const std::vector& getCoordinates() const { return m_coordinates; } 26 | NSString* getIndoorMapId() const { return m_indoorMapId; } 27 | int getIndoorMapFloorId() const { return m_indoorMapFloorId; } 28 | const std::vector& getPerPointElevations() const { return m_perPointElevations; } 29 | bool isIndoor() const { return ![m_indoorMapId isEqualToString:@""]; } 30 | bool isForwardColor() const { return m_isForwardColor; } 31 | 32 | private: 33 | std::vector m_coordinates; 34 | bool m_isForwardColor; 35 | NSString* m_indoorMapId; 36 | int m_indoorMapFloorId; 37 | std::vector m_perPointElevations; 38 | }; 39 | -------------------------------------------------------------------------------- /src/public/WRLDMapsceneStartLocation.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | /** 7 | * The data for representing the start location of a Mapscene. Includes starting orientation and 8 | * optional Indoor Map configuration. 9 | */ 10 | @interface WRLDMapsceneStartLocation : NSObject 11 | 12 | /** 13 | * The initial Latitude & Longitude of the starting camera's view. 14 | */ 15 | @property (nonatomic,readonly) CLLocationCoordinate2D coordinate; 16 | 17 | /** 18 | * The initial distance between the camera's position and its focused interest position. 19 | */ 20 | @property (nonatomic,readonly) CLLocationDistance distance; 21 | 22 | /** 23 | * An optional Floor Index to start in - Default is 0. Only applicable when setting an 24 | * Indoor Map id as well. 25 | */ 26 | @property (nonatomic,readonly) int interiorFloorIndex; 27 | 28 | /** 29 | * An optional ID for an Indoor Map to start in - Default is blank/none. 30 | */ 31 | @property (nonatomic,readonly) NSString* interiorId; 32 | 33 | /** 34 | * The initial heading in degrees, as an offset from north. 35 | */ 36 | @property (nonatomic,readonly) double heading; 37 | 38 | /** 39 | * An optional flag to specify if you want to try starting the map at the Device's GPS 40 | * position. Only currently applicable to mobile devices via the Wrld App. 41 | */ 42 | @property (nonatomic,readonly) bool tryStartAtGpsLocation; 43 | 44 | 45 | @end 46 | 47 | -------------------------------------------------------------------------------- /DevApp/ViewController.m: -------------------------------------------------------------------------------- 1 | #import "ViewController.h" 2 | #import "AppMapViewDelegate.h" 3 | @import Wrld; 4 | 5 | @interface ViewController () 6 | 7 | @property (nonatomic) IBOutlet WRLDMapView *mapView; 8 | @property (nonatomic) AppMapViewDelegate *mapViewDelegate; 9 | 10 | @end 11 | 12 | @implementation ViewController 13 | { 14 | } 15 | 16 | - (void)viewDidLoad 17 | { 18 | [super viewDidLoad]; 19 | 20 | if (!_mapView) 21 | { 22 | _mapView = (WRLDMapView*)[self view]; 23 | } 24 | 25 | _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 26 | 27 | _mapViewDelegate = _mapView.delegate ? _mapView.delegate : [AppMapViewDelegate alloc]; 28 | 29 | _mapView.delegate = _mapViewDelegate; 30 | } 31 | 32 | - (BOOL)prefersStatusBarHidden 33 | { 34 | return NO; 35 | } 36 | 37 | - (IBAction)exitButton:(id)sender 38 | { 39 | [_mapView exitIndoorMap]; 40 | } 41 | 42 | - (IBAction)moveUpButton:(id)sender 43 | { 44 | [_mapView moveUpFloor]; 45 | } 46 | 47 | - (IBAction)moveDownButton:(id)sender 48 | { 49 | [_mapView moveDownFloor]; 50 | } 51 | 52 | - (IBAction)expandButton:(id)sender 53 | { 54 | [_mapView expandIndoorMapView]; 55 | } 56 | 57 | - (IBAction)collapseButton:(id)sender 58 | { 59 | [_mapView collapseIndoorMapView]; 60 | } 61 | 62 | - (IBAction)enterButton:(id)sender 63 | { 64 | [_mapView enterIndoorMap:@"westport_house"]; 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /src/public/WRLDTagSearchOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /*! 8 | A set of parameters for a tag search. 9 | */ 10 | @interface WRLDTagSearchOptions : NSObject 11 | 12 | /*! 13 | @returns The tag to search for. 14 | */ 15 | - (NSString*)getQuery; 16 | 17 | /*! 18 | Sets the tag to search for. 19 | @param query The tag to search for. 20 | */ 21 | - (void)setQuery:(NSString*)query; 22 | 23 | /*! 24 | @returns The latitude and longitude to search around. 25 | */ 26 | - (CLLocationCoordinate2D)getCenter; 27 | 28 | /*! 29 | Set the latitude and longitude to search around. 30 | @param center The latitude and longitude to search around. 31 | */ 32 | - (void)setCenter:(CLLocationCoordinate2D)center; 33 | 34 | /*! 35 | @returns True if setRadius has been called. 36 | */ 37 | - (BOOL)usesRadius; 38 | 39 | /*! 40 | @returns The search radius in meters. 41 | */ 42 | - (double)getRadius; 43 | 44 | /*! 45 | @param radius Set the search radius in meters. 46 | */ 47 | - (void)setRadius:(double)radius; 48 | 49 | /*! 50 | @returns True if setNumber has been called. 51 | */ 52 | - (BOOL)usesNumber; 53 | 54 | /*! 55 | @returns The search result limit. 56 | */ 57 | - (NSInteger)getNumber; 58 | 59 | /*! 60 | Sets the maximum number of search results to return. 61 | @param number The search result limit. 62 | */ 63 | - (void)setNumber:(NSInteger)number; 64 | 65 | @end 66 | 67 | NS_ASSUME_NONNULL_END 68 | 69 | -------------------------------------------------------------------------------- /src/public/WRLDPoiSearchResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | The data for a single POI, returned by a POI search. 10 | */ 11 | @interface WRLDPoiSearchResult : NSObject 12 | 13 | /// A unique ID for this POI. 14 | @property (nonatomic) int id; 15 | 16 | /// The title text for this POI. 17 | @property (nonatomic, copy) NSString* title; 18 | 19 | /// The subtitle text for this POI. 20 | @property (nonatomic, copy) NSString* subtitle; 21 | 22 | /// A tag, or a space-separated list of tags, for this POI. 23 | @property (nonatomic, copy) NSString* tags; 24 | 25 | /// The geographic location of this POI. 26 | @property (nonatomic) CLLocationCoordinate2D latLng; 27 | 28 | /// The distance from the ground, in meters, of this POI. 29 | @property (nonatomic) double heightOffset; 30 | 31 | /// Whether this POI is indoors or not. 32 | @property (nonatomic) BOOL indoor; 33 | 34 | /// The ID of the indoor map this POI is inside. If the POI is outdoors, this is an empty string. 35 | @property (nonatomic, copy) NSString* indoorMapId; 36 | 37 | /// The floor number that this POI is on. If the POI is outdoors, this defaults to 0. 38 | @property (nonatomic) int indoorMapFloorId; 39 | 40 | /// Arbitrary JSON user data. This can be empty, or can be any JSON data this POI has associated. 41 | @property (nonatomic, copy) NSString* userData; 42 | 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorMapEntityInformation.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | #import "WRLDIndoorMapEntity.h" 7 | 8 | #import "WRLDOverlay.h" 9 | #import "WRLDIndoorMapEntityLoadState.h" 10 | 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /*! 15 | * Maintains information about indoor map entities belonging to an indoor map with the specified id. 16 | * Entity information is updated as map tiles stream in. 17 | */ 18 | @interface WRLDIndoorMapEntityInformation : NSObject 19 | 20 | /*! 21 | Instantiate a WRLDIndoorMapEntityInformation object to retrieve entity information for an indoor map. 22 | @param indoorMapId The string id of the indoor map to retrieve entity information for. 23 | @returns The WRLDIndoorMapEntityInformation instance. 24 | */ 25 | + (instancetype)informationForIndoorMap:(NSString *)indoorMapId; 26 | 27 | /// The string id of the indoor map associated with this IndoorMapEntityInformation object. 28 | @property (nonatomic, readonly, copy) NSString* indoorMapId; 29 | 30 | /*! 31 | An array of WRLDIndoorMapEntity objects, representing the currently loaded indentifiable features 32 | for the associated indoor map. 33 | */ 34 | @property (nonatomic, readonly, copy) NSArray* indoorMapEntities; 35 | 36 | /// The current streaming status for the associated indoor map. 37 | @property (nonatomic, readonly) WRLDIndoorMapEntityLoadState loadState; 38 | 39 | @end 40 | 41 | NS_ASSUME_NONNULL_END 42 | -------------------------------------------------------------------------------- /src/private/WRLDRouteViewAmalgamationHelper.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "WRLDRoutingPolylineCreateParams.h" 4 | #import "WRLDPolyline.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | typedef std::vector WRLDRoutingPolylineCreateParamsVector; 9 | typedef std::vector> WRLDStartEndRangePairVector; 10 | 11 | @interface WRLDRouteViewAmalgamationHelper : NSObject 12 | 13 | + (void)createPolylines:(const WRLDRoutingPolylineCreateParamsVector&)polylineCreateParams 14 | width:(CGFloat)width 15 | miterLimit:(CGFloat)miterLimit 16 | outBackwardPolylines:(NSMutableArray*)out_backwardPolylines 17 | outForwardPolylines:(NSMutableArray*)out_forwardPolylines; 18 | 19 | + (bool)canAmalgamate:(const WRLDRoutingPolylineCreateParams&)a 20 | with:(const WRLDRoutingPolylineCreateParams&)b; 21 | 22 | + (WRLDStartEndRangePairVector)buildAmalgamationRanges:(const WRLDRoutingPolylineCreateParamsVector&)polylineCreateParams; 23 | 24 | + (WRLDPolyline*)createAmalgamatedPolylineForRange:(const WRLDRoutingPolylineCreateParamsVector&)polylineCreateParams 25 | startRange:(const int)rangeStartIndex 26 | endRange:(const int)rangeEndIndex 27 | width:(CGFloat)width 28 | miterLimit:(CGFloat)miterLimit; 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /src/private/WRLDCoordinateBounds.m: -------------------------------------------------------------------------------- 1 | #import "WRLDCoordinateBounds.h" 2 | 3 | WRLDCoordinateBounds WRLDCoordinateBoundsMake(CLLocationCoordinate2D sw, CLLocationCoordinate2D ne) 4 | { 5 | WRLDCoordinateBounds bounds; 6 | bounds.sw = sw; 7 | bounds.ne = ne; 8 | return bounds; 9 | } 10 | 11 | WRLDCoordinateBounds WRLDCoordinateBoundsFromCoordinatesMake(CLLocationCoordinate2D* coordinates, NSUInteger count) 12 | { 13 | WRLDCoordinateBounds bounds; 14 | 15 | if (count == 0) 16 | { 17 | bounds.sw = bounds.ne = CLLocationCoordinate2DMake(0, 0); 18 | return bounds; 19 | } 20 | 21 | bounds.sw = bounds.ne = CLLocationCoordinate2DMake(coordinates[0].latitude, coordinates[0].longitude); 22 | 23 | for (NSUInteger i = 1; i < count; ++ i) 24 | { 25 | CLLocationCoordinate2D coordinate = coordinates[i]; 26 | 27 | if (coordinate.latitude < bounds.sw.latitude) 28 | { 29 | bounds.sw.latitude = coordinate.latitude; 30 | } 31 | 32 | if (coordinate.latitude > bounds.ne.latitude) 33 | { 34 | bounds.ne.latitude = coordinate.latitude; 35 | } 36 | 37 | if (coordinate.longitude < bounds.sw.longitude) 38 | { 39 | bounds.sw.longitude = coordinate.longitude; 40 | } 41 | 42 | if (coordinate.longitude > bounds.ne.longitude) 43 | { 44 | bounds.ne.longitude = coordinate.longitude; 45 | } 46 | } 47 | 48 | return bounds; 49 | } 50 | -------------------------------------------------------------------------------- /src/private/WRLDRouteViewOptions.m: -------------------------------------------------------------------------------- 1 | #import "WRLDRouteViewOptions.h" 2 | #import "WRLDRouteViewOptions+Private.h" 3 | 4 | @interface WRLDRouteViewOptions () 5 | 6 | @end 7 | 8 | @implementation WRLDRouteViewOptions 9 | { 10 | CGFloat m_width; 11 | UIColor* m_color; 12 | UIColor* m_forwardPathColor; 13 | CGFloat m_miterLimit; 14 | } 15 | 16 | - (instancetype)init 17 | { 18 | if (self = [super init]) 19 | { 20 | m_width = 10.f; 21 | m_color = [UIColor colorWithRed:0 green:(150.f/255.f) blue:1.f alpha:1.f]; 22 | m_forwardPathColor = [UIColor colorWithRed:0 green:1.f blue:(150.f/255.f) alpha:1.f]; 23 | m_miterLimit = 10.0f; 24 | } 25 | 26 | return self; 27 | } 28 | 29 | - (WRLDRouteViewOptions*) width:(CGFloat)width 30 | { 31 | m_width = width; 32 | return self; 33 | } 34 | 35 | - (WRLDRouteViewOptions*) color:(UIColor*)color 36 | { 37 | m_color = color; 38 | return self; 39 | } 40 | 41 | - (WRLDRouteViewOptions*) forwardPathColor:(UIColor*)color 42 | { 43 | m_forwardPathColor = color; 44 | return self; 45 | } 46 | 47 | - (WRLDRouteViewOptions*) miterLimit:(CGFloat)miterLimit 48 | { 49 | m_miterLimit = miterLimit; 50 | return self; 51 | } 52 | 53 | - (CGFloat) getWidth 54 | { 55 | return m_width; 56 | } 57 | 58 | - (UIColor*) getColor 59 | { 60 | return m_color; 61 | } 62 | 63 | - (UIColor*) getForwardPathColor 64 | { 65 | return m_forwardPathColor; 66 | } 67 | 68 | - (CGFloat) getMiterLimit 69 | { 70 | return m_miterLimit; 71 | } 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /src/private/WRLDTagSearchOptions.mm: -------------------------------------------------------------------------------- 1 | 2 | #import "WRLDTagSearchOptions.h" 3 | 4 | @interface WRLDTagSearchOptions () 5 | 6 | @end 7 | 8 | @implementation WRLDTagSearchOptions 9 | { 10 | NSString* m_query; 11 | CLLocationCoordinate2D m_center; 12 | BOOL m_useRadius; 13 | double m_radius; 14 | BOOL m_useNumber; 15 | NSInteger m_number; 16 | } 17 | 18 | - (instancetype)init { 19 | self = [super init]; 20 | if (self) 21 | { 22 | m_query = @""; 23 | m_center = CLLocationCoordinate2DMake(0, 0); 24 | m_useRadius = false; 25 | m_radius = 0.0; 26 | m_useNumber = false; 27 | m_number = 0; 28 | } 29 | return self; 30 | } 31 | 32 | - (NSString*)getQuery 33 | { 34 | return m_query; 35 | } 36 | 37 | - (void)setQuery:(NSString*)query 38 | { 39 | m_query = query; 40 | } 41 | 42 | - (CLLocationCoordinate2D)getCenter 43 | { 44 | return m_center; 45 | } 46 | 47 | - (void)setCenter:(CLLocationCoordinate2D)center 48 | { 49 | m_center = center; 50 | } 51 | 52 | - (BOOL)usesRadius 53 | { 54 | return m_useRadius; 55 | } 56 | 57 | - (double)getRadius 58 | { 59 | return m_radius; 60 | } 61 | 62 | - (void)setRadius:(double)radius 63 | { 64 | m_useRadius = true; 65 | m_radius = radius; 66 | } 67 | 68 | - (BOOL)usesNumber 69 | { 70 | return m_useNumber; 71 | } 72 | 73 | - (NSInteger)getNumber 74 | { 75 | return m_number; 76 | } 77 | 78 | - (void)setNumber:(NSInteger)number 79 | { 80 | m_useNumber = true; 81 | m_number = number; 82 | } 83 | 84 | @end 85 | 86 | 87 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/ImageHelpers.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | 5 | #include 6 | #include 7 | #import 8 | 9 | namespace ExampleApp 10 | { 11 | namespace Helpers 12 | { 13 | namespace ImageHelpers 14 | { 15 | enum Offset 16 | { 17 | Centre = 0, 18 | 19 | Left = 1 << 0, 20 | Right = 1 << 1, 21 | Top = 1 << 2, 22 | Bottom = 1 << 3, 23 | 24 | LeftOf = 1 << 4, 25 | RightOf = 1 << 5, 26 | Above = 1 << 6, 27 | Below = 1 << 7, 28 | }; 29 | 30 | typedef uint32_t OffsetValue; 31 | 32 | UIImageView* AddPngImageToParentView(UIView* pParentView, const std::string& name, OffsetValue offsetInParent); 33 | 34 | UIImageView* AddPngImageToParentView(UIView* pParentView, const std::string& name, float x, float y, float w, float h); 35 | 36 | UIImageView* AddPngHighlightedImageToParentView(UIView* pParentView, const std::string& name, const std::string& highlightedName, OffsetValue offsetInParent); 37 | 38 | UIImage* LoadImage(const std::string& name, NSBundle* bundle, bool permitFallbackToNonNativeResolution=false); 39 | 40 | UIImage* LoadImage(const NSString* name, NSBundle* bundle, bool permitFallbackToNonNativeResolution=false); 41 | 42 | UIImage* ImageFromColor(UIColor* color); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/private/WRLDRouteViewHelper.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import "WRLDRoutingPolylineCreateParams.h" 5 | #import "WRLDRouteStep.h" 6 | #include 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface WRLDRouteViewHelper : NSObject 11 | 12 | + (std::vector)createLinesForRouteDirection:(WRLDRouteStep*)routeStep 13 | isForwardColor:(bool)isForwardColor; 14 | 15 | + (std::vector)createLinesForRouteDirection:(WRLDRouteStep*)routeStep 16 | splitIndex:(int)splitIndex 17 | closestPointOnPath:(CLLocationCoordinate2D)closestPointOnRoute; 18 | 19 | + (std::vector)createLinesForFloorTransition:(WRLDRouteStep*)routeStep 20 | floorBefore:(int)floorBefore 21 | floorAfter:(int)floorAfter 22 | isForwardColor:(bool)isForwardColor; 23 | 24 | + (void)removeCoincidentPoints:(std::vector&)coordinates; 25 | 26 | + (void)removeCoincidentPointsWithElevations:(std::vector&)coordinates 27 | perPointElevation:(std::vector&)perPointElevations; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /src/public/WRLDBuildingHighlight.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | #import "WRLDBuildingInformation.h" 7 | #import "WRLDBuildingHighlightOptions.h" 8 | 9 | #import "WRLDOverlay.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /*! 14 | Represents a single selected building on the map, 15 | for displaying a graphical overlay to highlight the building, or for obtaining information about 16 | the building. 17 | */ 18 | @interface WRLDBuildingHighlight : NSObject 19 | 20 | /*! 21 | Instantiate a highlight with highlight options. 22 | @param highlightOptions A set of parameters for WRLDBuildingHighlight. 23 | @returns A WRLDBuildingHighlight instance. 24 | */ 25 | + (instancetype)highlightWithOptions:(WRLDBuildingHighlightOptions*)highlightOptions; 26 | 27 | /*! 28 | The color for this highlight. 29 | */ 30 | @property (nonatomic, copy) UIColor* color; 31 | 32 | /*! 33 | Returns building information for the map building associated with this highlight, if available. 34 | Returns null if the request for building information is still pending (internally, building 35 | information may be fetched asynchronously). 36 | Also returns nil if no building information was successfully retrieved for this building 37 | highlight. This may be either because no building exists at the query location supplied in 38 | the WRLDBuildingHighlightOptions construction parameters, or because an internal web request failed. 39 | */ 40 | @property (nonatomic, readonly, copy, nullable) WRLDBuildingInformation* buildingInformation; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /src/public/WRLDBuildingHighlightOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | #import 6 | #import 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | /*! 11 | Options used to construct a WRLDBuildingHighlight object. 12 | */ 13 | @interface WRLDBuildingHighlightOptions : NSObject 14 | 15 | /*! 16 | Instantiate highlight options to attempt to highlight any building present at the given CLLocationCoordinate2D location. 17 | @param location The location. 18 | @returns A WRLDBuildingHighlightOptions instance. 19 | */ 20 | + (instancetype) highlightOptionsWithLocation:(CLLocationCoordinate2D)location; 21 | 22 | /*! 23 | Instantiate highlight options to attempt to highlight any building present at the given screen point for the 24 | current map view. 25 | @param screenPoint The screen-space point. 26 | @returns A WRLDBuildingHighlightOptions instance. 27 | */ 28 | + (instancetype) highlightOptionsWithScreenPoint:(CGPoint)screenPoint; 29 | 30 | /*! 31 | Sets the color of the building highlight as a UIColor. The default value is black. 32 | 33 | @param color The color to use. 34 | */ 35 | - (void) setColor:(UIColor*)color; 36 | 37 | /*! 38 | Sets options such that, if a WRLDBuildingHighlight object is created with these options and added 39 | to a map, it will not result in any visual highlight overlay being displayed. In this case, 40 | the WRLDBuildingHighlight object is used only for the purpose of retrieving WRLDBuildingInformation. 41 | */ 42 | - (void) informationOnly; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | 48 | -------------------------------------------------------------------------------- /src/public/WRLDRoutingQueryOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import "WRLDRouteTransportationMode.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! 9 | A set of parameters for a WRLDRoutingQuery. 10 | */ 11 | @interface WRLDRoutingQueryOptions : NSObject 12 | 13 | /*! 14 | Add an outdoor waypoint to the route. 15 | 16 | @param latLng A CLLocationCoordinate2D this route should pass through. 17 | */ 18 | - (void)addWaypoint:(CLLocationCoordinate2D)latLng; 19 | 20 | /*! 21 | Add an indoor waypoint to the route. 22 | 23 | @param latLng A CLLocationCoordinate2D this route should pass through. 24 | @param indoorFloorId The ID of the floor this point lies on. 25 | */ 26 | - (void)addIndoorWaypoint:(CLLocationCoordinate2D)latLng forIndoorFloor:(int)indoorFloorId; 27 | 28 | /*! 29 | Get the list of WRLDRoutingQueryWaypoint objects in this query. 30 | 31 | @returns The waypoints in this query. 32 | */ 33 | - (NSMutableArray*)getWaypoints; 34 | 35 | /*! 36 | Set the desired transportation mode for the route, e.g. Walking or Driving. The default mode is Walking. 37 | Driving routes are available for limited areas. Please contact support@wrld3d.com for details. 38 | 39 | @param transportationMode An Enum that represents transportationMode, e.g Walking or Driving. 40 | */ 41 | - (void)setTransportationMode:(WRLDRouteTransportationMode)transportationMode; 42 | 43 | /*! 44 | Gets the transportationMode for the type of route that should be queried, e.g. Walking or Driving. 45 | 46 | @returns The transportation mode in this query. 47 | */ 48 | - (WRLDRouteTransportationMode)getTransportationMode; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /src/private/WRLDIndoorMapEntity.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDIndoorMapEntity.h" 2 | #import "WRLDIndoorMapEntity+Private.h" 3 | #import "IndoorMapEntityModel.h" 4 | 5 | @interface WRLDIndoorMapEntity () 6 | 7 | @end 8 | 9 | @implementation WRLDIndoorMapEntity 10 | { 11 | 12 | } 13 | 14 | - (instancetype) initWithIndoorMapEntityId:(NSString*)indoorMapEntityId 15 | indoorMapFloorId:(NSInteger)indoorMapFloorId 16 | coordinate:(CLLocationCoordinate2D)coordinate 17 | { 18 | if (self = [super init]) 19 | { 20 | _indoorMapEntityId = indoorMapEntityId; 21 | _indoorMapFloorId = indoorMapFloorId; 22 | _coordinate = coordinate; 23 | } 24 | return self; 25 | } 26 | 27 | + (WRLDIndoorMapEntity*) createWRLDIndoorMapEntity:(const std::string&) indoorMapEntityId_ 28 | indoorMapFloorId:(int)indoorMapFloorId_ 29 | coordinate:(const Eegeo::Space::LatLong&)coordinate_ 30 | { 31 | NSString* indoorMapEntityId = [NSString stringWithCString:indoorMapEntityId_.c_str() encoding:NSUTF8StringEncoding]; 32 | CLLocationCoordinate2D locationCoordinate = CLLocationCoordinate2DMake(coordinate_.GetLatitudeInDegrees(), coordinate_.GetLongitudeInDegrees()); 33 | 34 | WRLDIndoorMapEntity* indoorMapEntity = [[WRLDIndoorMapEntity alloc] initWithIndoorMapEntityId:indoorMapEntityId 35 | indoorMapFloorId:indoorMapFloorId_ 36 | coordinate:locationCoordinate]; 37 | return indoorMapEntity; 38 | } 39 | 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /src/private/WRLDPointOnRouteResult.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "WRLDPointOnRouteResult.h" 4 | #import "WRLDPointOnRouteResult+Private.h" 5 | 6 | @interface WRLDPointOnRouteResult () 7 | 8 | @end 9 | 10 | @implementation WRLDPointOnRouteResult 11 | 12 | - (instancetype) initWithResultPoint:(CLLocationCoordinate2D)resultPoint 13 | inputPoint:(CLLocationCoordinate2D)inputPoint 14 | distanceFromInputPoint:(double)distanceFromInputPoint 15 | fractionAlongRoute:(double)fractionAlongRoute 16 | fractionAlongRouteSection:(double)fractionAlongRouteSection 17 | fractionAlongRouteStep:(double)fractionAlongRouteStep 18 | routeStep:(WRLDRouteStep*)routeStep 19 | routeSection:(WRLDRouteSection*)routeSection 20 | routeSectionIndex:(int)routeSectionIndex 21 | routeStepIndex:(int)routeStepIndex 22 | pathSegmentStartVertexIndex:(int)pathSegmentStartVertexIndex 23 | { 24 | if (self = [super init]) 25 | { 26 | _resultPoint = resultPoint; 27 | _inputPoint = inputPoint; 28 | _distanceFromInputPoint = distanceFromInputPoint; 29 | _fractionAlongRoute = fractionAlongRoute; 30 | _fractionAlongRouteSection = fractionAlongRouteSection; 31 | _fractionAlongRouteStep = fractionAlongRouteStep; 32 | _routeStep = routeStep; 33 | _routeSection = routeSection; 34 | _routeSectionIndex = routeSectionIndex; 35 | _routeStepIndex = routeStepIndex; 36 | _pathSegmentStartVertexIndex = pathSegmentStartVertexIndex; 37 | } 38 | 39 | return self; 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /DevApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | WRLD Dev App 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | Main 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UIRequiresFullScreen 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | WrldApiKey 49 | $(WRLD_API_KEY) 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/public/WRLDPointOnPath.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | #import "WRLDRoute.h" 7 | #import "WRLDPointOnRouteResult.h" 8 | #import "WRLDPointOnPathResult.h" 9 | #import "WRLDPointOnRouteOptions.h" 10 | 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /*! 15 | A class which allows you to find the closest point on a path or route. Created by the createPointOnPath 16 | method of the WRLDMapView object. 17 | */ 18 | @interface WRLDPointOnPath : NSObject 19 | 20 | /*! 21 | Find the closest point on a path to a provided target point. 22 | 23 | 24 | @param path The path to test against; an array of CLLocationCoordinates. 25 | @param count The number of elements in the path array. 26 | @param point The desired target point. 27 | @returns The closest point on the path to the provided target point. 28 | */ 29 | - (WRLDPointOnPathResult*) getPointOnPath:(CLLocationCoordinate2D *)path 30 | count:(NSInteger)count 31 | point:(CLLocationCoordinate2D)point ; 32 | 33 | /*! 34 | Retrieve information about the closest point on a WRLDRoute to a provided target point on an Indoor Map. 35 | 36 | 37 | @param route The WRLDRoute to test against. 38 | @param point The desired target point. 39 | @param options The indoor options for specifying a route that is indoors. 40 | @returns The WRLDPointOnRouteResult that represents information about that point, or nil if no suitable point is found. 41 | */ 42 | - (WRLDPointOnRouteResult*) getPointOnRoute:(WRLDRoute *)route 43 | point:(CLLocationCoordinate2D)point 44 | options:(WRLDPointOnRouteOptions*)options; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | 50 | -------------------------------------------------------------------------------- /src/public/WRLDPoiService.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import "WRLDPoiSearch.h" 4 | #import "WRLDTextSearchOptions.h" 5 | #import "WRLDTagSearchOptions.h" 6 | #import "WRLDAutocompleteOptions.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | /*! 11 | A service which allows you to search for POIs (Points Of Interest). Created by the createPoiService 12 | method of the WRLDMapView object. 13 | */ 14 | @interface WRLDPoiService : NSObject 15 | 16 | /*! 17 | Begins a free-text search for POIs with the given query options. The results of the search will be 18 | passed as a WRLDPoiSearchResponse to the poiSearchDidComplete method on WRLDMapViewDelegate. 19 | 20 | @param options The text search options containing the query and other search criteria. 21 | @returns A handle to the ongoing search, which can be used to cancel it. 22 | */ 23 | - (WRLDPoiSearch*)searchText:(WRLDTextSearchOptions*)options; 24 | 25 | /*! 26 | Begins a tag search for POIs with the given query options. The results of the search will be passed 27 | as a WRLDPoiSearchResponse to the poiSearchDidComplete method on WRLDMapViewDelegate. 28 | 29 | @param options The tag search options containing the query and other search criteria. 30 | @returns A handle to the ongoing search, which can be used to cancel it. 31 | */ 32 | - (WRLDPoiSearch*)searchTag:(WRLDTagSearchOptions*)options; 33 | 34 | /*! 35 | Begins an autocomplete search for POIs with the given query options. The results of the search will 36 | be passed as a WRLDPoiSearchResponse to the poiSearchDidComplete method on WRLDMapViewDelegate. 37 | 38 | @param options The autocomplete search options containing the query and other search criteria. 39 | @returns A handle to the ongoing search, which can be used to cancel it. 40 | */ 41 | - (WRLDPoiSearch*)searchAutocomplete:(WRLDAutocompleteOptions*)options; 42 | 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingQueryOptions.mm: -------------------------------------------------------------------------------- 1 | 2 | #import "WRLDRoutingQueryOptions.h" 3 | #import "WRLDRoutingQueryWaypoint.h" 4 | #import "WRLDRoutingQueryWaypoint+Private.h" 5 | #import "WRLDRouteTransportationMode.h" 6 | 7 | @interface WRLDRoutingQueryOptions () 8 | 9 | @end 10 | 11 | @implementation WRLDRoutingQueryOptions 12 | { 13 | NSMutableArray* m_waypoints; 14 | WRLDRouteTransportationMode m_mode; 15 | } 16 | 17 | - (instancetype)init { 18 | self = [super init]; 19 | if (self) 20 | { 21 | m_waypoints = [[NSMutableArray alloc] init]; 22 | } 23 | return self; 24 | } 25 | 26 | - (void)addWaypoint:(CLLocationCoordinate2D)latLng 27 | { 28 | WRLDRoutingQueryWaypoint* routingQueryWaypoint = [[WRLDRoutingQueryWaypoint alloc] initWithLatLng:latLng 29 | isIndoors:false 30 | indoorFloorId:0]; 31 | [m_waypoints addObject:routingQueryWaypoint]; 32 | } 33 | 34 | - (void)addIndoorWaypoint:(CLLocationCoordinate2D)latLng forIndoorFloor:(int)indoorFloorId 35 | { 36 | WRLDRoutingQueryWaypoint* routingQueryWaypoint = [[WRLDRoutingQueryWaypoint alloc] initWithLatLng:latLng 37 | isIndoors:true 38 | indoorFloorId:indoorFloorId]; 39 | [m_waypoints addObject:routingQueryWaypoint]; 40 | } 41 | 42 | - (NSMutableArray*)getWaypoints 43 | { 44 | return m_waypoints; 45 | } 46 | 47 | - (void)setTransportationMode:(WRLDRouteTransportationMode)mode 48 | { 49 | m_mode = mode; 50 | } 51 | 52 | - (WRLDRouteTransportationMode)getTransportationMode 53 | { 54 | return m_mode; 55 | } 56 | 57 | @end 58 | 59 | -------------------------------------------------------------------------------- /src/public/WRLDPointOnRouteResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import "WRLDRouteStep.h" 5 | #import "WRLDRouteSection.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | 10 | /// This type contains information about a projected point on a route. 11 | @interface WRLDPointOnRouteResult : NSObject 12 | 13 | /// The closest point on the Route to the target point. 14 | @property (nonatomic, readonly) CLLocationCoordinate2D resultPoint; 15 | 16 | /// The original target point tested against. 17 | @property (nonatomic, readonly) CLLocationCoordinate2D inputPoint; 18 | 19 | /// Absolute distance from the input point (in ECEF space). 20 | @property (nonatomic, readonly) double distanceFromInputPoint; 21 | 22 | /// Fraction that the projected point travelled along entire route. 23 | @property (nonatomic, readonly) double fractionAlongRoute; 24 | 25 | /// Fraction that the projected point travelled along the route section. 26 | @property (nonatomic, readonly) double fractionAlongRouteSection; 27 | 28 | /// Fraction that the projected point travelled along the route step. 29 | @property (nonatomic, readonly) double fractionAlongRouteStep; 30 | 31 | /// Route Step that the projected point lies on. 32 | @property (nonatomic, retain, readonly) WRLDRouteStep* routeStep; 33 | 34 | /// Route Section that the projected point lies on. 35 | @property (nonatomic, retain, readonly) WRLDRouteSection* routeSection; 36 | 37 | /// Index for the Route Step that the projected point lies on. 38 | @property (nonatomic, readonly) int routeStepIndex; 39 | 40 | /// Index for the Route Section that the projected point lies on. 41 | @property (nonatomic, readonly) int routeSectionIndex; 42 | 43 | /// Vertex index where the path segment starts for the projected point. Can be used to separate traversed path. 44 | @property (nonatomic, readonly) int pathSegmentStartVertexIndex; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /src/public/WRLDRouteViewOptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | 5 | #import 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /*! 10 | Defines creation parameters for a RouteView. The styling options match with those of the PolylineOptions class 11 | */ 12 | @interface WRLDRouteViewOptions : NSObject 13 | 14 | /*! 15 | * Sets the width of the RouteView's polylines in screen pixels. 16 | * 17 | * @param width The width in screen pixels. 18 | * @return The RouteViewOptions object on which the method was called, with the new width set. 19 | */ 20 | - (WRLDRouteViewOptions*) width:(CGFloat)width; 21 | 22 | /*! 23 | * Sets the color of the RouteView's polylines as a 32-bit ARGB color. The default value is opaque blue (0xff0096ff). 24 | * 25 | * @param color The color to use. 26 | * @return The RouteViewOptions object on which the method was called, with the new color set. 27 | */ 28 | - (WRLDRouteViewOptions*) color:(UIColor*)color; 29 | 30 | /*! 31 | * Sets the forward path color of the RouteView's polylines as a 32-bit ARGB color. The default value is opaque green (0xff00ff96). 32 | * 33 | * @param color The color to use. 34 | * @return The RouteViewOptions object on which the method was called, with the new color set. 35 | */ 36 | - (WRLDRouteViewOptions*) forwardPathColor:(UIColor*)color; 37 | 38 | /*! 39 | * Sets the miter limit of the RouteView's polylines, the maximum allowed ratio between the length of a miter 40 | * diagonal at a join, and the line width. 41 | * 42 | * @param miterLimit The miter limit. 43 | * @return The RouteViewOptions object on which the method was called, with the new miter limit set. 44 | */ 45 | - (WRLDRouteViewOptions*) miterLimit:(CGFloat)miterLimit; 46 | 47 | - (CGFloat) getWidth; 48 | 49 | - (UIColor*) getColor; 50 | 51 | - (UIColor*) getForwardPathColor; 52 | 53 | - (CGFloat) getMiterLimit; 54 | 55 | @end 56 | 57 | NS_ASSUME_NONNULL_END 58 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIButton+DefaultStates.mm: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2014), All Rights Reserved 2 | 3 | #import "UIButton+DefaultStates.h" 4 | 5 | #include "ImageHelpers.h" 6 | #include "UIColors.h" 7 | 8 | @implementation UIButton (DefaultStates) 9 | 10 | - (void)setDefaultStates 11 | { 12 | [self setBackgroundImage:ExampleApp::Helpers::ImageHelpers::ImageFromColor(ExampleApp::Helpers::ColorPalette::UiBorderColor) 13 | forState:UIControlStateNormal]; 14 | [self setBackgroundImage:ExampleApp::Helpers::ImageHelpers::ImageFromColor(ExampleApp::Helpers::ColorPalette::ButtonPressColor) 15 | forState:UIControlStateHighlighted]; 16 | } 17 | 18 | - (void)setDefaultStatesWithImages:(UIImage*)normalImage 19 | :(UIImage*)highlightImage 20 | { 21 | [self setImage:normalImage 22 | forState:UIControlStateNormal]; 23 | [self setImage:highlightImage 24 | forState:UIControlStateHighlighted]; 25 | 26 | [self setDefaultStates]; 27 | } 28 | 29 | - (void)setDefaultStatesWithImageName:(NSString*)imageName 30 | fromBundle:(NSBundle*)bundle 31 | { 32 | UIImage* image = ExampleApp::Helpers::ImageHelpers::LoadImage(imageName, bundle); 33 | 34 | [self setDefaultStatesWithImages:image 35 | :image]; 36 | } 37 | 38 | - (void)setDefaultStatesWithImageNames:(NSString*)normalImageName 39 | :(NSString*)highlightImageName 40 | fromBundle:(NSBundle*)bundle 41 | { 42 | UIImage* normalImage = ExampleApp::Helpers::ImageHelpers::LoadImage(normalImageName, bundle); 43 | UIImage* highlightImage = ExampleApp::Helpers::ImageHelpers::LoadImage(highlightImageName, bundle); 44 | 45 | [self setDefaultStatesWithImages:normalImage 46 | :highlightImage]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /src/private/WRLDRoutingService.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDRoutingService.h" 2 | #import "WRLDRoutingService+Private.h" 3 | #import "WRLDRoutingQuery.h" 4 | #import "WRLDRoutingQuery+Private.h" 5 | 6 | #include "WRLDRoutingQueryOptions.h" 7 | #include "WRLDRoutingQueryWaypoint.h" 8 | #include "WRLDRoutingServiceHelpers.h" 9 | 10 | #include "RoutingQueryOptions.h" 11 | 12 | #include 13 | 14 | @implementation WRLDRoutingService 15 | { 16 | Eegeo::Api::EegeoRoutingApi* m_routingApi; 17 | } 18 | 19 | - (instancetype)initWithApi:(Eegeo::Api::EegeoRoutingApi&)routingApi; 20 | { 21 | if (self = [super init]) 22 | { 23 | m_routingApi = &routingApi; 24 | } 25 | 26 | return self; 27 | } 28 | 29 | - (WRLDRoutingQuery*)findRoutes:(WRLDRoutingQueryOptions*)options 30 | { 31 | std::vector routingQueryWaypoints; 32 | 33 | NSMutableArray* waypoints = [options getWaypoints]; 34 | routingQueryWaypoints.reserve([waypoints count]); 35 | 36 | for(WRLDRoutingQueryWaypoint* waypoint : waypoints) 37 | { 38 | CLLocationCoordinate2D waypointLatLng = waypoint.latLng; 39 | Eegeo::Space::LatLong latLng = Eegeo::Space::LatLong::FromDegrees(waypointLatLng.latitude, waypointLatLng.longitude); 40 | Eegeo::Routes::Webservice::RoutingQueryWaypoint routingQueryWaypoint = 41 | { 42 | {latLng.GetLatitude(), latLng.GetLongitude()}, 43 | static_cast(waypoint.isIndoors), 44 | static_cast(waypoint.indoorFloorId) 45 | }; 46 | 47 | routingQueryWaypoints.emplace_back(routingQueryWaypoint); 48 | } 49 | 50 | Eegeo::Routes::Webservice::RoutingQueryOptions routingQueryOptions = 51 | { 52 | routingQueryWaypoints, 53 | [WRLDRoutingServiceHelpers ToWRLDTransportationMode:[options getTransportationMode]] 54 | }; 55 | 56 | return [[WRLDRoutingQuery alloc] initWithIdAndApi: m_routingApi->BeginRoutingQuery(routingQueryOptions) routingApi:*m_routingApi]; 57 | } 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /WrldWidgets/IndoorControl/src/private/UIColors.h: -------------------------------------------------------------------------------- 1 | // Copyright eeGeo Ltd (2012-2015), All Rights Reserved 2 | 3 | #pragma once 4 | #import "UIKit/UIKit.h" 5 | 6 | namespace ExampleApp 7 | { 8 | namespace Helpers 9 | { 10 | namespace ColorPalette 11 | { 12 | extern UIColor* UiBackgroundColor; 13 | extern UIColor* UiBorderColor; 14 | 15 | extern UIColor* ButtonPressColor; 16 | 17 | extern UIColor* ModalBackgroundColor; 18 | 19 | extern UIColor* UiTextTitleColor; 20 | extern UIColor* UiTextHeaderColor; 21 | extern UIColor* UiTextCopyColor; 22 | extern UIColor* UiTextCopyLightColor; 23 | extern UIColor* UiTextLinkColor; 24 | 25 | extern UIColor* TextFieldEnabledColor; 26 | extern UIColor* TextFieldDisabledColor; 27 | 28 | extern UIColor* TableHeaderPressColor; 29 | extern UIColor* TableSubCellColor; 30 | extern UIColor* TableSubCellPressColor; 31 | extern UIColor* TableDividerColor; 32 | extern UIColor* TableSeparatorColor; 33 | extern UIColor* TableSearchCellColor; 34 | extern UIColor* TableSearchTextColor; 35 | extern UIColor* TableSearchDetailTextColor; 36 | extern UIColor* TableHeaderTextColor; 37 | extern UIColor* TableHeaderTextHighlightColor; 38 | extern UIColor* TableSubCellTextColor; 39 | extern UIColor* TableCellHighlightColor; 40 | 41 | extern UIColor* TwitterDarkGrey; 42 | extern UIColor* TwitterLightGrey; 43 | extern UIColor* TwitterBlue; 44 | 45 | extern UIColor* CompassControlColor; 46 | extern UIColor* CompassControlHighlightColor; 47 | 48 | extern UIColor* UiShadowColor; 49 | 50 | extern UIColor* White; 51 | extern UIColor* Black; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /DevApp/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | @interface AppDelegate () 4 | 5 | @end 6 | 7 | @implementation AppDelegate 8 | 9 | 10 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 11 | // Override point for customization after application launch. 12 | return YES; 13 | } 14 | 15 | 16 | - (void)applicationWillResignActive:(UIApplication *)application { 17 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 18 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 19 | } 20 | 21 | 22 | - (void)applicationDidEnterBackground:(UIApplication *)application { 23 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 24 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 25 | } 26 | 27 | 28 | - (void)applicationWillEnterForeground:(UIApplication *)application { 29 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 30 | } 31 | 32 | 33 | - (void)applicationDidBecomeActive:(UIApplication *)application { 34 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 35 | } 36 | 37 | 38 | - (void)applicationWillTerminate:(UIApplication *)application { 39 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 40 | } 41 | 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /src/private/WRLDMapView+Private.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "EegeoMapApi.h" 4 | #include "PoiSearchResults.h" 5 | #include "RoutingQueryResponse.h" 6 | #include "PositioningTypes.h" 7 | #include "MapsceneRequestResponse.h" 8 | #include "EegeoIndoorEntityApi.h" 9 | #include "EegeoIndoorEntityInformationApi.h" 10 | #include "EegeoIndoorsApi.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface WRLDMapView (Private) 15 | 16 | - (void)notifyMapViewRegionWillChange; 17 | 18 | - (void)notifyMapViewRegionIsChanging; 19 | 20 | - (void)notifyMapViewRegionDidChange; 21 | 22 | - (void)notifyInitialStreamingCompleted; 23 | 24 | - (void)notifyTouchTapped:(CGPoint)point; 25 | 26 | - (void)notifyMarkerTapped:(int)markerId; 27 | 28 | - (void)notifyPositionerProjectionChanged; 29 | 30 | - (void)notifyEnteredIndoorMap; 31 | 32 | - (void)notifyExitedIndoorMap; 33 | 34 | - (void)notifyEnterIndoorMapFailed:(const std::string&)interiorId; 35 | 36 | - (void)notifyIndoorEntryMarkerAdded:(const Eegeo::Api::IndoorMapEntryMarkerMessage&)message; 37 | 38 | - (void)notifyIndoorEntryMarkerRemoved:(const Eegeo::Api::IndoorMapEntryMarkerMessage&)message; 39 | 40 | - (void)notifyPoiSearchCompleted:(const Eegeo::PoiSearch::PoiSearchResults&)result; 41 | 42 | - (void)notifyMapsceneCompleted:(const Eegeo::Mapscenes::MapsceneRequestResponse&)result; 43 | 44 | - (void)notifyRoutingQueryCompleted:(const Eegeo::Routes::Webservice::RoutingQueryResponse&)result; 45 | 46 | - (void)notifyBuildingInformationReceived:(int)buildingHighlightId; 47 | 48 | - (void)notifyIndoorEntityTapped:(const Eegeo::Api::IndoorEntityPickedMessage&)indoorEntityPickedMessage; 49 | 50 | - (void)notifyPrecacheOperationCompleted:(int)operationId; 51 | 52 | - (void)notifyPrecacheOperationCancelled:(int)operationId; 53 | 54 | - (void)notifyIndoorMapEntityInformationChanged:(const Eegeo::Api::IndoorMapEntityInformationMessage&)message; 55 | 56 | - (Eegeo::Api::EegeoMapApi&)getMapApi; 57 | 58 | const Eegeo::Positioning::ElevationMode::Type ToPositioningElevationMode(WRLDElevationMode elevationMode); 59 | 60 | @end 61 | 62 | NS_ASSUME_NONNULL_END 63 | -------------------------------------------------------------------------------- /src/public/WRLDRouteStep.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | 6 | #import "WRLDRouteDirections.h" 7 | #import "WRLDRouteTransportationMode.h" 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | /*! 12 | A single step of a WRLDRoute. 13 | */ 14 | @interface WRLDRouteStep : NSObject 15 | 16 | /*! 17 | An array of the individual CLLocationCoordinate2D points that make up this step. 18 | This can be a single point if no distance was covered, for example 19 | a WRLDRouteStep may indicate departure or arrival with a single point. 20 | 21 | @returns An array of the individual CLLocationCoordinate2D points that make up this step. 22 | */ 23 | - (CLLocationCoordinate2D*) path; 24 | 25 | /*! 26 | @returns The count of CLLocationCoordinate2D points that make up this path. 27 | */ 28 | - (int) pathCount; 29 | 30 | /*! 31 | @returns The directions associated with this step. 32 | */ 33 | - (WRLDRouteDirections*) directions; 34 | 35 | /*! 36 | Specifies the mode of transport for this step: 37 | - `WRLDWalking`: Indicates that the route is a walking WRLDRoute. 38 | 39 | @returns The mode of transport for this step. 40 | */ 41 | - (WRLDRouteTransportationMode) mode; 42 | 43 | /*! 44 | @returns Whether this step is indoors or not. 45 | */ 46 | - (BOOL) isIndoors; 47 | 48 | /*! 49 | @returns If indoors, the ID of the indoor map this step is inside. 50 | */ 51 | - (NSString*) indoorId; 52 | 53 | /*! 54 | @returns If indoors, the ID of the floor this step is on. 55 | */ 56 | - (int) indoorFloorId; 57 | 58 | /*! 59 | @returns If indoors, this step represents moving between the floors of the previous and next steps. 60 | */ 61 | - (BOOL) isMultiFloor; 62 | 63 | /*! 64 | @returns The estimated time this step will take to travel in seconds. 65 | */ 66 | - (NSTimeInterval) duration; 67 | 68 | /*! 69 | @returns The estimated distance this step covers in meters. 70 | */ 71 | - (CLLocationDistance) distance; 72 | 73 | /*! 74 | @returns If available, the name of the location this step is on. 75 | */ 76 | - (NSString*) stepName; 77 | 78 | @end 79 | 80 | NS_ASSUME_NONNULL_END 81 | -------------------------------------------------------------------------------- /src/public/WRLDIndoorGeoreferencer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import "WRLDMapView.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /*! A type to provide conversion between floor plans map coordinates and 9 | * world coordinate types. Given three points with both their latlong coordinates 10 | * and their points in the indoor floor map coordinate system, other floor map points can 11 | * be converted to latlongs. 12 | */ 13 | @interface WRLDIndoorGeoreferencer : NSObject 14 | 15 | /*! 16 | *Instantiate a converter for a set of reference coordinates 17 | * @param point1LatLong LatLong (in degrees) for 1st point in world space 18 | * @param point1mapX X coordinate for 1st point in map space 19 | * @param point1mapY Y coordinate for 1st point in map space 20 | * @param point2LatLong LatLong (in degrees) for 2nd point in world space 21 | * @param point2mapX X coordinate for 2nd point in map space 22 | * @param point2mapY Y coordinate for 2nd point in map space 23 | * @param point3LatLong LatLong (in degrees) for 3rd point in world space 24 | * @param point3mapX X coordinate for 3rd point in map space 25 | * @param point3mapY Y coordinate for 3rd point in map space 26 | * @param mapView WRLD map view 27 | * @returns A WrldIndoorGeoreferencer instance 28 | */ 29 | - (instancetype) init : (CLLocationCoordinate2D) point1LatLong 30 | point1mapX: (float) point1mapX 31 | point1mapY: (float) point1mapY 32 | point2LatLong: (CLLocationCoordinate2D) point2LatLong 33 | point2mapX: (float) point2mapX 34 | point2mapY: (float) point2mapY 35 | point3LatLong: (CLLocationCoordinate2D) point3LatLong 36 | point3mapX: (float) point3mapX 37 | point3mapY: (float) point3mapY 38 | mapView: (WRLDMapView*) mapView; 39 | /*! 40 | * Convert a coordinate in floor space to world space latlng. 41 | * @param mapX X coordinate in map space 42 | * @param mapY Y coordinate in map space 43 | * @returns CLLocationCoordinate2D of position in world space latlng. 44 | */ 45 | - (CLLocationCoordinate2D) mapPointToLatLong: (float) mapX 46 | mapY: (float) mapY; 47 | 48 | 49 | @end 50 | 51 | NS_ASSUME_NONNULL_END 52 | -------------------------------------------------------------------------------- /src/private/WRLDBuildingHighlightOptions.mm: -------------------------------------------------------------------------------- 1 | #import "WRLDBuildingHighlightOptions.h" 2 | #import "WRLDBuildingHighlightOptions+Private.h" 3 | 4 | @interface WRLDBuildingHighlightOptions () 5 | 6 | @end 7 | 8 | @implementation WRLDBuildingHighlightOptions 9 | { 10 | CLLocationCoordinate2D m_selectionLocation; 11 | CGPoint m_selectionScreenPoint; 12 | UIColor* m_color; 13 | WRLDBuildingHighlightSelectionMode m_selectionMode; 14 | Boolean m_shouldCreateView; 15 | } 16 | 17 | + (instancetype) highlightOptionsWithLocation:(CLLocationCoordinate2D)location 18 | { 19 | return [[WRLDBuildingHighlightOptions alloc] initWithLocation:location]; 20 | } 21 | 22 | + (instancetype) highlightOptionsWithScreenPoint:(CGPoint)screenPoint 23 | { 24 | return [[WRLDBuildingHighlightOptions alloc] initWithScreenPoint:screenPoint]; 25 | } 26 | 27 | - (instancetype) initWithLocation:(CLLocationCoordinate2D)location 28 | { 29 | self = [super init]; 30 | if (self) 31 | { 32 | m_selectionLocation = location; 33 | m_selectionMode = WRLDBuildingHighlightSelectAtLocation; 34 | m_color = [[UIColor blackColor] colorWithAlphaComponent:1.0]; 35 | m_shouldCreateView = true; 36 | } 37 | return self; 38 | } 39 | 40 | - (instancetype) initWithScreenPoint:(CGPoint)screenPoint 41 | { 42 | self = [super init]; 43 | if (self) 44 | { 45 | m_selectionScreenPoint = screenPoint; 46 | m_selectionMode = WRLDBuildingHighlightSelectAtScreenPoint; 47 | m_color = [[UIColor blackColor] colorWithAlphaComponent:1.0]; 48 | m_shouldCreateView = true; 49 | } 50 | return self; 51 | } 52 | 53 | - (void) setColor:(UIColor*)color 54 | { 55 | m_color = color; 56 | } 57 | 58 | - (void) informationOnly 59 | { 60 | m_shouldCreateView = false; 61 | } 62 | 63 | - (WRLDBuildingHighlightSelectionMode) selectionMode 64 | { 65 | return m_selectionMode; 66 | } 67 | 68 | - (CLLocationCoordinate2D) selectionLocation 69 | { 70 | return m_selectionLocation; 71 | } 72 | 73 | - (CGPoint) selectionScreenPoint 74 | { 75 | return m_selectionScreenPoint; 76 | } 77 | 78 | - (UIColor*) color 79 | { 80 | return m_color; 81 | } 82 | 83 | - (Boolean) shouldCreateView 84 | { 85 | return m_shouldCreateView; 86 | } 87 | 88 | @end 89 | -------------------------------------------------------------------------------- /resources/label_category_icon_map.json: -------------------------------------------------------------------------------- 1 | { 2 | "LabelCategoryIconMapping": 3 | [ 4 | { 5 | "label_anchor_category": "place_name_park_lowz", 6 | "label_icon_key": "park_outlined" 7 | }, 8 | { 9 | "label_anchor_category": "place_name_park_midz", 10 | "label_icon_key": "park_outlined" 11 | }, 12 | { 13 | "label_anchor_category": "place_name_park_highz", 14 | "label_icon_key": "park_outlined" 15 | }, 16 | { 17 | "label_anchor_category": "place_name_golf_lowz", 18 | "label_icon_key": "golf_outlined" 19 | }, 20 | { 21 | "label_anchor_category": "place_name_golf_midz", 22 | "label_icon_key": "golf_outlined" 23 | }, 24 | { 25 | "label_anchor_category": "place_name_golf_highz", 26 | "label_icon_key": "golf_outlined" 27 | }, 28 | { 29 | "label_anchor_category": "place_name_airp_lowz", 30 | "label_icon_key": "airport_outlined" 31 | }, 32 | { 33 | "label_anchor_category": "place_name_airp_midz", 34 | "label_icon_key": "airport_outlined" 35 | }, 36 | { 37 | "label_anchor_category": "place_name_airp_highz", 38 | "label_icon_key": "airport_outlined" 39 | }, 40 | { 41 | "label_anchor_category": "interior_facility_stairs", 42 | "label_icon_key": "stairs" 43 | }, 44 | { 45 | "label_anchor_category": "interior_facility_elevator", 46 | "label_icon_key": "elevator" 47 | }, 48 | { 49 | "label_anchor_category": "interior_facility_escalator", 50 | "label_icon_key": "escalator" 51 | }, 52 | { 53 | "label_anchor_category": "interior_facility_toilets", 54 | "label_icon_key": "toilets" 55 | }, 56 | { 57 | "label_anchor_category": "interior_facility_toilets_men", 58 | "label_icon_key": "toilet_men" 59 | }, 60 | { 61 | "label_anchor_category": "interior_facility_toilets_ladies", 62 | "label_icon_key": "toilet_ladies" 63 | }, 64 | { 65 | "label_anchor_category": "interior_facility_toilets_generic", 66 | "label_icon_key": "toilet_generic" 67 | }, 68 | { 69 | "label_anchor_category": "indoor_map", 70 | "label_icon_key": "indoor_map" 71 | } 72 | ] 73 | } 74 | -------------------------------------------------------------------------------- /src/Wrld.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | //! Project version number for Wrld. 4 | FOUNDATION_EXPORT double WrldVersionNumber; 5 | 6 | //! Project version string for Wrld. 7 | FOUNDATION_EXPORT const unsigned char WrldVersionString[]; 8 | 9 | 10 | #import "WRLDApi.h" 11 | #import "WRLDCoordinateBounds.h" 12 | #import "WRLDCoordinateWithAltitude.h" 13 | #import "WRLDElevationMode.h" 14 | #import "WRLDIndoorMap.h" 15 | #import "WRLDIndoorMapDelegate.h" 16 | #import "WRLDIndoorMapEntity.h" 17 | #import "WRLDIndoorMapEntityInformation.h" 18 | #import "WRLDIndoorMapEntityLoadState.h" 19 | #import "WRLDMapCamera.h" 20 | #import "WRLDMapOptions.h" 21 | #import "WRLDMapView.h" 22 | #import "WRLDMapView+IBAdditions.h" 23 | #import "WRLDMapViewDelegate.h" 24 | #import "WRLDMarker.h" 25 | #import "WRLDPositioner.h" 26 | #import "WRLDPolygon.h" 27 | #import "WRLDIndoorGeoreferencer.h" 28 | #import "WRLDBlueSphere.h" 29 | #import "WRLDViewAnchor.h" 30 | #import "WRLDPoiService.h" 31 | #import "WRLDPoiSearch.h" 32 | #import "WRLDTextSearchOptions.h" 33 | #import "WRLDTagSearchOptions.h" 34 | #import "WRLDAutocompleteOptions.h" 35 | #import "WRLDPoiSearchResponse.h" 36 | #import "WRLDPoiSearchResult.h" 37 | #import "WRLDMapsceneRequest.h" 38 | #import "WRLDMapsceneRequestOptions.h" 39 | #import "WRLDMapsceneRequestResponse.h" 40 | #import "WRLDMapsceneService.h" 41 | #import "WRLDMapsceneDataSources.h" 42 | #import "WRLDMapsceneSearchConfig.h" 43 | #import "WRLDMapsceneSearchMenuItem.h" 44 | #import "WRLDMapsceneStartLocation.h" 45 | #import "WRLDRoute.h" 46 | #import "WRLDRouteSection.h" 47 | #import "WRLDRouteStep.h" 48 | #import "WRLDRouteDirections.h" 49 | #import "WRLDRouteView.h" 50 | #import "WRLDRouteViewOptions.h" 51 | #import "WRLDRouteTransportationMode.h" 52 | #import "WRLDRoutingQueryOptions.h" 53 | #import "WRLDRoutingQueryWaypoint.h" 54 | #import "WRLDRoutingQueryResponse.h" 55 | #import "WRLDRoutingQuery.h" 56 | #import "WRLDRoutingService.h" 57 | #import "WRLDBuildingContour.h" 58 | #import "WRLDBuildingDimensions.h" 59 | #import "WRLDBuildingHighlight.h" 60 | #import "WRLDBuildingInformation.h" 61 | #import "WRLDBuildingHighlightOptions.h" 62 | #import "WRLDMapFeatureType.h" 63 | #import "WRLDVector3.h" 64 | #import "WRLDPickResult.h" 65 | #import "WRLDTouchTapInfo.h" 66 | #import "WRLDIndoorEntityTapResult.h" 67 | #import "WRLDPrecacheOperation.h" 68 | #import "WRLDPrecacheOperationResult.h" 69 | #import "WRLDPointOnRouteResult.h" 70 | #import "WRLDPointOnPath.h" 71 | #import "WRLDPointOnPathResult.h" 72 | -------------------------------------------------------------------------------- /src/public/WRLDBlueSphere.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #import 4 | #import 5 | #import "WRLDElevationMode.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /// A Blue Sphere is a model that is used to visualize a user on a map. 10 | /// The blue sphere can change location and rotate and can also be place in indoor maps. 11 | @interface WRLDBlueSphere : NSObject 12 | 13 | /// The location of the blue sphere. 14 | @property (nonatomic) CLLocationCoordinate2D coordinate; 15 | 16 | /// The heading the blue sphere is facing in degrees from north. 17 | @property (nonatomic) CLLocationDirection heading; 18 | 19 | /// The ID of the indoor map the blue sphere is associated with - if any. 20 | @property (nonatomic, readonly, copy) NSString* indoorMapId; 21 | 22 | /// The index of the floor the blue sphere is associated with - if any. 23 | @property (nonatomic) NSInteger indoorFloorId; 24 | 25 | /// For outdoor maps, the height above ground of the sphere model's center, in meters. 26 | /// For indoor maps, the height above the floor of the base of the leader-line, in meters. 27 | @property (nonatomic) CLLocationDistance elevation; 28 | 29 | /// The property that determines if the blue sphere should be displayed and assets loaded. 30 | @property (nonatomic) bool enabled; 31 | 32 | /// The property that determines if the accracy ring should be displayed. 33 | @property (nonatomic) bool accuracyRingEnabled; 34 | 35 | /// The property that determines radius of accuracy ring in meters. 36 | @property (nonatomic) float accuracyInMeters; 37 | 38 | /*! 39 | Place the blue sphere inside an indoor map on a specific floor. 40 | @param indoorMapId The ID of an indoor map the bue sphere should be inside. (See WRLDIndoorMap). 41 | @param indoorMapFloorId An index specifying which floor of the indoor map the blue sphere should be on. (See WRLDIndoorMap). 42 | */ 43 | - (void)setIndoorMap:(NSString * _Nonnull)indoorMapId 44 | withIndoorMapFloorId:(NSInteger)indoorMapFloorId; 45 | 46 | /*! 47 | Set the location of the blue sphere and the heading it is facing. 48 | @param coordinate The location of the blue sphere. 49 | @param heading The heading the blue sphere is facing in degrees from north. 50 | */ 51 | - (void)setCoordinate:(CLLocationCoordinate2D)coordinate 52 | heading:(CLLocationDirection) heading; 53 | 54 | 55 | /// The property that determines if the blue sphere should display orientation information. 56 | @property (nonatomic) bool showOrientation; 57 | 58 | 59 | @end 60 | 61 | NS_ASSUME_NONNULL_END 62 | --------------------------------------------------------------------------------