diff --git a/components/MapCircle.js b/components/MapCircle.js
index 054cd2b6b..25c97a787 100644
--- a/components/MapCircle.js
+++ b/components/MapCircle.js
@@ -4,7 +4,7 @@ import {
} from 'react-native';
import decorateMapComponent, {
USES_DEFAULT_IMPLEMENTATION,
- NOT_SUPPORTED,
+ SUPPORTED,
} from './decorateMapComponent';
const propTypes = {
@@ -140,7 +140,7 @@ module.exports = decorateMapComponent(MapCircle, {
componentType: 'Circle',
providers: {
google: {
- ios: NOT_SUPPORTED,
+ ios: SUPPORTED,
android: USES_DEFAULT_IMPLEMENTATION,
},
},
diff --git a/components/MapPolygon.js b/components/MapPolygon.js
index 979cd54f7..d04b7e0e3 100644
--- a/components/MapPolygon.js
+++ b/components/MapPolygon.js
@@ -4,7 +4,7 @@ import {
} from 'react-native';
import decorateMapComponent, {
USES_DEFAULT_IMPLEMENTATION,
- NOT_SUPPORTED,
+ SUPPORTED,
} from './decorateMapComponent';
const propTypes = {
@@ -92,7 +92,6 @@ const propTypes = {
* points on the Earth's surface. The geodesic curve is constructed assuming the Earth is
* a sphere.
*
- * @platform android
*/
geodesic: PropTypes.bool,
@@ -145,7 +144,7 @@ module.exports = decorateMapComponent(MapPolygon, {
componentType: 'Polygon',
providers: {
google: {
- ios: NOT_SUPPORTED,
+ ios: SUPPORTED,
android: USES_DEFAULT_IMPLEMENTATION,
},
},
diff --git a/components/MapPolyline.js b/components/MapPolyline.js
index 067e706de..684e1d71d 100644
--- a/components/MapPolyline.js
+++ b/components/MapPolyline.js
@@ -4,7 +4,7 @@ import {
} from 'react-native';
import decorateMapComponent, {
USES_DEFAULT_IMPLEMENTATION,
- NOT_SUPPORTED,
+ SUPPORTED,
} from './decorateMapComponent';
const propTypes = {
@@ -26,6 +26,11 @@ const propTypes = {
*/
onPress: PropTypes.func,
+ /**
+ * The fill color to use for the path.
+ */
+ fillColor: PropTypes.string,
+
/**
* The stroke width to use for the path.
*/
@@ -140,7 +145,7 @@ module.exports = decorateMapComponent(MapPolyline, {
componentType: 'Polyline',
providers: {
google: {
- ios: NOT_SUPPORTED,
+ ios: SUPPORTED,
android: USES_DEFAULT_IMPLEMENTATION,
},
},
diff --git a/components/MapView.js b/components/MapView.js
index a7762665d..2250d1591 100644
--- a/components/MapView.js
+++ b/components/MapView.js
@@ -32,7 +32,7 @@ const MAP_TYPES = {
NONE: 'none',
};
-const ANDROID_ONLY_MAP_TYPES = [
+const GOOGLE_MAPS_ONLY_TYPES = [
MAP_TYPES.TERRAIN,
MAP_TYPES.NONE,
];
@@ -208,7 +208,8 @@ const propTypes = {
* - standard: standard road map (default)
* - satellite: satellite view
* - hybrid: satellite view with roads and points of interest overlayed
- * - terrain: (Android only) topographic view
+ * - terrain: topographic view
+ * - none: no base map
*/
mapType: PropTypes.oneOf(Object.values(MAP_TYPES)),
@@ -502,8 +503,9 @@ class MapView extends React.Component {
onMapReady: this._onMapReady,
onLayout: this._onLayout,
};
- if (Platform.OS === 'ios' && ANDROID_ONLY_MAP_TYPES.includes(props.mapType)) {
- props.mapType = MAP_TYPES.STANDARD;
+ if (Platform.OS === 'ios' && props.provider === ProviderConstants.PROVIDER_DEFAULT
+ && GOOGLE_MAPS_ONLY_TYPES.includes(props.mapType)) {
+ props.mapType = MAP_TYPES.standard;
}
props.handlePanDrag = !!props.onPanDrag;
} else {
diff --git a/example/App.js b/example/App.js
index e927c4566..74631f451 100644
--- a/example/App.js
+++ b/example/App.js
@@ -124,12 +124,12 @@ class App extends React.Component {
[EventListener, 'Events', true, '(incomplete)'],
[MarkerTypes, 'Image Based Markers', true],
[DraggableMarkers, 'Draggable Markers', true],
- [PolygonCreator, 'Polygon Creator'],
- [PolylineCreator, 'Polyline Creator'],
+ [PolygonCreator, 'Polygon Creator', true],
+ [PolylineCreator, 'Polyline Creator', true],
[AnimatedViews, 'Animating with MapViews'],
[AnimatedMarkers, 'Animated Marker Position'],
[Callouts, 'Custom Callouts', true],
- [Overlays, 'Circles, Polygons, and Polylines', true, '(ios error)'],
+ [Overlays, 'Circles, Polygons, and Polylines', true],
[DefaultMarkers, 'Default Markers', true],
[CustomMarkers, 'Custom Markers', true],
[TakeSnapshot, 'Take Snapshot', true, '(incomplete)'],
diff --git a/example/examples/Overlays.js b/example/examples/Overlays.js
index 8006abbbc..17a976014 100644
--- a/example/examples/Overlays.js
+++ b/example/examples/Overlays.js
@@ -82,8 +82,10 @@ class Overlays extends React.Component {
this.onPress(e)}
{...mapOptions}
diff --git a/example/ios/AirMapsExplorer.xcodeproj/project.pbxproj b/example/ios/AirMapsExplorer.xcodeproj/project.pbxproj
index 365d67b6e..7ae27bb68 100644
--- a/example/ios/AirMapsExplorer.xcodeproj/project.pbxproj
+++ b/example/ios/AirMapsExplorer.xcodeproj/project.pbxproj
@@ -11,13 +11,6 @@
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
- 213CA8EA1D89F66A008623EC /* AIRGMSMarker.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8DD1D89F66A008623EC /* AIRGMSMarker.m */; };
- 213CA8EB1D89F66A008623EC /* AIRGoogleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8DF1D89F66A008623EC /* AIRGoogleMap.m */; };
- 213CA8EC1D89F66A008623EC /* AIRGoogleMapCallout.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8E11D89F66A008623EC /* AIRGoogleMapCallout.m */; };
- 213CA8ED1D89F66A008623EC /* AIRGoogleMapCalloutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8E31D89F66A008623EC /* AIRGoogleMapCalloutManager.m */; };
- 213CA8EE1D89F66A008623EC /* AIRGoogleMapManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8E51D89F66A008623EC /* AIRGoogleMapManager.m */; };
- 213CA8EF1D89F66A008623EC /* AIRGoogleMapMarker.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8E71D89F66A008623EC /* AIRGoogleMapMarker.m */; };
- 213CA8F01D89F66A008623EC /* AIRGoogleMapMarkerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 213CA8E91D89F66A008623EC /* AIRGoogleMapMarkerManager.m */; };
2166AB291D82EC56007538D7 /* AIRMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 2166AAFC1D82EC56007538D7 /* AIRMap.m */; };
2166AB2A1D82EC56007538D7 /* AIRMapCallout.m in Sources */ = {isa = PBXBuildFile; fileRef = 2166AAFE1D82EC56007538D7 /* AIRMapCallout.m */; };
2166AB2B1D82EC56007538D7 /* AIRMapCalloutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2166AB001D82EC56007538D7 /* AIRMapCalloutManager.m */; };
@@ -33,14 +26,28 @@
2166AB351D82EC56007538D7 /* AIRMapPolylineManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2166AB141D82EC56007538D7 /* AIRMapPolylineManager.m */; };
2166AB361D82EC56007538D7 /* SMCalloutView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2166AB171D82EC56007538D7 /* SMCalloutView.m */; };
2166AB3E1D82EC56007538D7 /* RCTConvert+MoreMapKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 2166AB281D82EC56007538D7 /* RCTConvert+MoreMapKit.m */; };
- 21B248671DA4483D008FCB52 /* DummyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 21B248661DA4483D008FCB52 /* DummyView.m */; };
21D346651D933B8C002BAD8A /* AIRMapUrlTile.m in Sources */ = {isa = PBXBuildFile; fileRef = 21D346621D933B8C002BAD8A /* AIRMapUrlTile.m */; };
21D346661D933B8C002BAD8A /* AIRMapUrlTileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 21D346641D933B8C002BAD8A /* AIRMapUrlTileManager.m */; };
21E6570A1D77591400B75EE5 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21E657091D77591400B75EE5 /* SystemConfiguration.framework */; };
21E6570C1D77591A00B75EE5 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21E6570B1D77591A00B75EE5 /* MobileCoreServices.framework */; };
21E6570E1D77591F00B75EE5 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21E6570D1D77591F00B75EE5 /* MapKit.framework */; };
21E657101D77594C00B75EE5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21E6570F1D77594C00B75EE5 /* AudioToolbox.framework */; };
- C27EBA2BED74D74958F60ABC /* Pods_AirMapsExplorer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C91D72410F775D78CACEBA8 /* Pods_AirMapsExplorer.framework */; };
+ 8620CC871DBD814A00B79BFE /* AIRGMSMarker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC6E1DBD814A00B79BFE /* AIRGMSMarker.m */; };
+ 8620CC881DBD814A00B79BFE /* AIRGoogleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC701DBD814A00B79BFE /* AIRGoogleMap.m */; };
+ 8620CC891DBD814A00B79BFE /* AIRGoogleMapCallout.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC721DBD814A00B79BFE /* AIRGoogleMapCallout.m */; };
+ 8620CC8A1DBD814A00B79BFE /* AIRGoogleMapCalloutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC741DBD814A00B79BFE /* AIRGoogleMapCalloutManager.m */; };
+ 8620CC8B1DBD814A00B79BFE /* AIRGoogleMapManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC761DBD814A00B79BFE /* AIRGoogleMapManager.m */; };
+ 8620CC8C1DBD814A00B79BFE /* AIRGoogleMapMarker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC781DBD814A00B79BFE /* AIRGoogleMapMarker.m */; };
+ 8620CC8D1DBD814A00B79BFE /* AIRGoogleMapMarkerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC7A1DBD814A00B79BFE /* AIRGoogleMapMarkerManager.m */; };
+ 8620CC8E1DBD814A00B79BFE /* AIRGoogleMapPolygon.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC7C1DBD814A00B79BFE /* AIRGoogleMapPolygon.m */; };
+ 8620CC8F1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC7E1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.m */; };
+ 8620CC901DBD814A00B79BFE /* AIRGoogleMapPolyline.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC801DBD814A00B79BFE /* AIRGoogleMapPolyline.m */; };
+ 8620CC911DBD814A00B79BFE /* AIRGoogleMapPolylineManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC821DBD814A00B79BFE /* AIRGoogleMapPolylineManager.m */; };
+ 8620CC921DBD814A00B79BFE /* DummyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC841DBD814A00B79BFE /* DummyView.m */; };
+ 8620CC931DBD814A00B79BFE /* RCTConvert+GMSMapViewType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8620CC861DBD814A00B79BFE /* RCTConvert+GMSMapViewType.m */; };
+ 8697D6221DBEDE6100DB7D0F /* AIRGoogleMapCircle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8697D6211DBEDE6100DB7D0F /* AIRGoogleMapCircle.m */; };
+ 8697D6251DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8697D6241DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.m */; };
+ C9315A21AD5A149EB5B40F29 /* Pods_AirMapsExplorer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24EB66BA0860A4DCD4CA3D77 /* Pods_AirMapsExplorer.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -63,20 +70,6 @@
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AirMapsExplorer/Images.xcassets; sourceTree = ""; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AirMapsExplorer/Info.plist; sourceTree = ""; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AirMapsExplorer/main.m; sourceTree = ""; };
- 213CA8DC1D89F66A008623EC /* AIRGMSMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGMSMarker.h; sourceTree = ""; };
- 213CA8DD1D89F66A008623EC /* AIRGMSMarker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGMSMarker.m; sourceTree = ""; };
- 213CA8DE1D89F66A008623EC /* AIRGoogleMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMap.h; sourceTree = ""; };
- 213CA8DF1D89F66A008623EC /* AIRGoogleMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMap.m; sourceTree = ""; };
- 213CA8E01D89F66A008623EC /* AIRGoogleMapCallout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapCallout.h; sourceTree = ""; };
- 213CA8E11D89F66A008623EC /* AIRGoogleMapCallout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapCallout.m; sourceTree = ""; };
- 213CA8E21D89F66A008623EC /* AIRGoogleMapCalloutManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapCalloutManager.h; sourceTree = ""; };
- 213CA8E31D89F66A008623EC /* AIRGoogleMapCalloutManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapCalloutManager.m; sourceTree = ""; };
- 213CA8E41D89F66A008623EC /* AIRGoogleMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapManager.h; sourceTree = ""; };
- 213CA8E51D89F66A008623EC /* AIRGoogleMapManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapManager.m; sourceTree = ""; };
- 213CA8E61D89F66A008623EC /* AIRGoogleMapMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapMarker.h; sourceTree = ""; };
- 213CA8E71D89F66A008623EC /* AIRGoogleMapMarker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapMarker.m; sourceTree = ""; };
- 213CA8E81D89F66A008623EC /* AIRGoogleMapMarkerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapMarkerManager.h; sourceTree = ""; };
- 213CA8E91D89F66A008623EC /* AIRGoogleMapMarkerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapMarkerManager.m; sourceTree = ""; };
2166AAF01D8233EC007538D7 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
2166AAF21D8233F9007538D7 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
2166AAF41D823402007538D7 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
@@ -112,8 +105,6 @@
2166AB171D82EC56007538D7 /* SMCalloutView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMCalloutView.m; sourceTree = ""; };
2166AB271D82EC56007538D7 /* RCTConvert+MoreMapKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTConvert+MoreMapKit.h"; sourceTree = ""; };
2166AB281D82EC56007538D7 /* RCTConvert+MoreMapKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTConvert+MoreMapKit.m"; sourceTree = ""; };
- 21B248661DA4483D008FCB52 /* DummyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DummyView.m; sourceTree = ""; };
- 21B248681DA44851008FCB52 /* DummyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DummyView.h; sourceTree = ""; };
21D346611D933B8C002BAD8A /* AIRMapUrlTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRMapUrlTile.h; sourceTree = ""; };
21D346621D933B8C002BAD8A /* AIRMapUrlTile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRMapUrlTile.m; sourceTree = ""; };
21D346631D933B8C002BAD8A /* AIRMapUrlTileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRMapUrlTileManager.h; sourceTree = ""; };
@@ -122,9 +113,39 @@
21E6570B1D77591A00B75EE5 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
21E6570D1D77591F00B75EE5 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
21E6570F1D77594C00B75EE5 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
- 2451EE03458E9BDA5F49B446 /* Pods-AirMapsExplorer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirMapsExplorer.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer.debug.xcconfig"; sourceTree = ""; };
- 39293F18DE5A673E1BD8D397 /* Pods-AirMapsExplorer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirMapsExplorer.release.xcconfig"; path = "Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer.release.xcconfig"; sourceTree = ""; };
- 7C91D72410F775D78CACEBA8 /* Pods_AirMapsExplorer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AirMapsExplorer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 24EB66BA0860A4DCD4CA3D77 /* Pods_AirMapsExplorer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AirMapsExplorer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 309B9CD42BBCF38F87696E10 /* Pods-AirMapsExplorer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirMapsExplorer.release.xcconfig"; path = "Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer.release.xcconfig"; sourceTree = ""; };
+ 8620CC6D1DBD814A00B79BFE /* AIRGMSMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGMSMarker.h; sourceTree = ""; };
+ 8620CC6E1DBD814A00B79BFE /* AIRGMSMarker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGMSMarker.m; sourceTree = ""; };
+ 8620CC6F1DBD814A00B79BFE /* AIRGoogleMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMap.h; sourceTree = ""; };
+ 8620CC701DBD814A00B79BFE /* AIRGoogleMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMap.m; sourceTree = ""; };
+ 8620CC711DBD814A00B79BFE /* AIRGoogleMapCallout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapCallout.h; sourceTree = ""; };
+ 8620CC721DBD814A00B79BFE /* AIRGoogleMapCallout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapCallout.m; sourceTree = ""; };
+ 8620CC731DBD814A00B79BFE /* AIRGoogleMapCalloutManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapCalloutManager.h; sourceTree = ""; };
+ 8620CC741DBD814A00B79BFE /* AIRGoogleMapCalloutManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapCalloutManager.m; sourceTree = ""; };
+ 8620CC751DBD814A00B79BFE /* AIRGoogleMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapManager.h; sourceTree = ""; };
+ 8620CC761DBD814A00B79BFE /* AIRGoogleMapManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapManager.m; sourceTree = ""; };
+ 8620CC771DBD814A00B79BFE /* AIRGoogleMapMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapMarker.h; sourceTree = ""; };
+ 8620CC781DBD814A00B79BFE /* AIRGoogleMapMarker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapMarker.m; sourceTree = ""; };
+ 8620CC791DBD814A00B79BFE /* AIRGoogleMapMarkerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapMarkerManager.h; sourceTree = ""; };
+ 8620CC7A1DBD814A00B79BFE /* AIRGoogleMapMarkerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapMarkerManager.m; sourceTree = ""; };
+ 8620CC7B1DBD814A00B79BFE /* AIRGoogleMapPolygon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapPolygon.h; sourceTree = ""; };
+ 8620CC7C1DBD814A00B79BFE /* AIRGoogleMapPolygon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapPolygon.m; sourceTree = ""; };
+ 8620CC7D1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapPolygonManager.h; sourceTree = ""; };
+ 8620CC7E1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapPolygonManager.m; sourceTree = ""; };
+ 8620CC7F1DBD814A00B79BFE /* AIRGoogleMapPolyline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapPolyline.h; sourceTree = ""; };
+ 8620CC801DBD814A00B79BFE /* AIRGoogleMapPolyline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapPolyline.m; sourceTree = ""; };
+ 8620CC811DBD814A00B79BFE /* AIRGoogleMapPolylineManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapPolylineManager.h; sourceTree = ""; };
+ 8620CC821DBD814A00B79BFE /* AIRGoogleMapPolylineManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapPolylineManager.m; sourceTree = ""; };
+ 8620CC831DBD814A00B79BFE /* DummyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DummyView.h; sourceTree = ""; };
+ 8620CC841DBD814A00B79BFE /* DummyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DummyView.m; sourceTree = ""; };
+ 8620CC851DBD814A00B79BFE /* RCTConvert+GMSMapViewType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTConvert+GMSMapViewType.h"; sourceTree = ""; };
+ 8620CC861DBD814A00B79BFE /* RCTConvert+GMSMapViewType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTConvert+GMSMapViewType.m"; sourceTree = ""; };
+ 8697D6201DBEDE6100DB7D0F /* AIRGoogleMapCircle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapCircle.h; sourceTree = ""; };
+ 8697D6211DBEDE6100DB7D0F /* AIRGoogleMapCircle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapCircle.m; sourceTree = ""; };
+ 8697D6231DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRGoogleMapCircleManager.h; sourceTree = ""; };
+ 8697D6241DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRGoogleMapCircleManager.m; sourceTree = ""; };
+ 86C3F1E16CFF1D84E5317F85 /* Pods-AirMapsExplorer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirMapsExplorer.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer.debug.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -143,7 +164,7 @@
21E6570E1D77591F00B75EE5 /* MapKit.framework in Frameworks */,
21E6570C1D77591A00B75EE5 /* MobileCoreServices.framework in Frameworks */,
21E6570A1D77591400B75EE5 /* SystemConfiguration.framework in Frameworks */,
- C27EBA2BED74D74958F60ABC /* Pods_AirMapsExplorer.framework in Frameworks */,
+ C9315A21AD5A149EB5B40F29 /* Pods_AirMapsExplorer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -162,11 +183,20 @@
21E6570D1D77591F00B75EE5 /* MapKit.framework */,
21E6570B1D77591A00B75EE5 /* MobileCoreServices.framework */,
21E657091D77591400B75EE5 /* SystemConfiguration.framework */,
- 7C91D72410F775D78CACEBA8 /* Pods_AirMapsExplorer.framework */,
+ 24EB66BA0860A4DCD4CA3D77 /* Pods_AirMapsExplorer.framework */,
);
name = Frameworks;
sourceTree = "";
};
+ 075E864247A56626509A7315 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 86C3F1E16CFF1D84E5317F85 /* Pods-AirMapsExplorer.debug.xcconfig */,
+ 309B9CD42BBCF38F87696E10 /* Pods-AirMapsExplorer.release.xcconfig */,
+ );
+ name = Pods;
+ sourceTree = "";
+ };
13B07FAE1A68108700A75B9A /* AirMapsExplorer */ = {
isa = PBXGroup;
children = (
@@ -181,30 +211,6 @@
name = AirMapsExplorer;
sourceTree = "";
};
- 213CA8DB1D89F66A008623EC /* AirGoogleMaps */ = {
- isa = PBXGroup;
- children = (
- 213CA8DC1D89F66A008623EC /* AIRGMSMarker.h */,
- 213CA8DD1D89F66A008623EC /* AIRGMSMarker.m */,
- 213CA8DE1D89F66A008623EC /* AIRGoogleMap.h */,
- 213CA8DF1D89F66A008623EC /* AIRGoogleMap.m */,
- 213CA8E01D89F66A008623EC /* AIRGoogleMapCallout.h */,
- 213CA8E11D89F66A008623EC /* AIRGoogleMapCallout.m */,
- 213CA8E21D89F66A008623EC /* AIRGoogleMapCalloutManager.h */,
- 213CA8E31D89F66A008623EC /* AIRGoogleMapCalloutManager.m */,
- 213CA8E41D89F66A008623EC /* AIRGoogleMapManager.h */,
- 213CA8E51D89F66A008623EC /* AIRGoogleMapManager.m */,
- 213CA8E61D89F66A008623EC /* AIRGoogleMapMarker.h */,
- 213CA8E71D89F66A008623EC /* AIRGoogleMapMarker.m */,
- 213CA8E81D89F66A008623EC /* AIRGoogleMapMarkerManager.h */,
- 213CA8E91D89F66A008623EC /* AIRGoogleMapMarkerManager.m */,
- 21B248661DA4483D008FCB52 /* DummyView.m */,
- 21B248681DA44851008FCB52 /* DummyView.h */,
- );
- name = AirGoogleMaps;
- path = ../../ios/AirGoogleMaps;
- sourceTree = "";
- };
2166AAFA1D82EC56007538D7 /* AirMaps */ = {
isa = PBXGroup;
children = (
@@ -255,24 +261,23 @@
path = Callout;
sourceTree = "";
};
- 76083FA9A1B0F1AEF4D2FCE7 /* Pods */ = {
+ 2BAA8C4A80B44CFBB3F83458 /* Libraries */ = {
isa = PBXGroup;
children = (
- 2451EE03458E9BDA5F49B446 /* Pods-AirMapsExplorer.debug.xcconfig */,
- 39293F18DE5A673E1BD8D397 /* Pods-AirMapsExplorer.release.xcconfig */,
);
- name = Pods;
+ name = Libraries;
sourceTree = "";
};
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
- 213CA8DB1D89F66A008623EC /* AirGoogleMaps */,
+ 8620CC6C1DBD814A00B79BFE /* AirGoogleMaps */,
2166AAFA1D82EC56007538D7 /* AirMaps */,
13B07FAE1A68108700A75B9A /* AirMapsExplorer */,
83CBBA001A601CBA00E9B192 /* Products */,
- 76083FA9A1B0F1AEF4D2FCE7 /* Pods */,
051AB288C799B62BE091B88A /* Frameworks */,
+ 075E864247A56626509A7315 /* Pods */,
+ 2BAA8C4A80B44CFBB3F83458 /* Libraries */,
);
indentWidth = 2;
sourceTree = "";
@@ -287,6 +292,44 @@
name = Products;
sourceTree = "";
};
+ 8620CC6C1DBD814A00B79BFE /* AirGoogleMaps */ = {
+ isa = PBXGroup;
+ children = (
+ 8620CC6D1DBD814A00B79BFE /* AIRGMSMarker.h */,
+ 8620CC6E1DBD814A00B79BFE /* AIRGMSMarker.m */,
+ 8620CC6F1DBD814A00B79BFE /* AIRGoogleMap.h */,
+ 8620CC701DBD814A00B79BFE /* AIRGoogleMap.m */,
+ 8620CC711DBD814A00B79BFE /* AIRGoogleMapCallout.h */,
+ 8620CC721DBD814A00B79BFE /* AIRGoogleMapCallout.m */,
+ 8620CC731DBD814A00B79BFE /* AIRGoogleMapCalloutManager.h */,
+ 8620CC741DBD814A00B79BFE /* AIRGoogleMapCalloutManager.m */,
+ 8620CC751DBD814A00B79BFE /* AIRGoogleMapManager.h */,
+ 8620CC761DBD814A00B79BFE /* AIRGoogleMapManager.m */,
+ 8620CC771DBD814A00B79BFE /* AIRGoogleMapMarker.h */,
+ 8620CC781DBD814A00B79BFE /* AIRGoogleMapMarker.m */,
+ 8620CC791DBD814A00B79BFE /* AIRGoogleMapMarkerManager.h */,
+ 8620CC7A1DBD814A00B79BFE /* AIRGoogleMapMarkerManager.m */,
+ 8620CC7B1DBD814A00B79BFE /* AIRGoogleMapPolygon.h */,
+ 8620CC7C1DBD814A00B79BFE /* AIRGoogleMapPolygon.m */,
+ 8620CC7D1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.h */,
+ 8620CC7E1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.m */,
+ 8620CC7F1DBD814A00B79BFE /* AIRGoogleMapPolyline.h */,
+ 8620CC801DBD814A00B79BFE /* AIRGoogleMapPolyline.m */,
+ 8620CC811DBD814A00B79BFE /* AIRGoogleMapPolylineManager.h */,
+ 8620CC821DBD814A00B79BFE /* AIRGoogleMapPolylineManager.m */,
+ 8620CC831DBD814A00B79BFE /* DummyView.h */,
+ 8620CC841DBD814A00B79BFE /* DummyView.m */,
+ 8620CC851DBD814A00B79BFE /* RCTConvert+GMSMapViewType.h */,
+ 8620CC861DBD814A00B79BFE /* RCTConvert+GMSMapViewType.m */,
+ 8697D6201DBEDE6100DB7D0F /* AIRGoogleMapCircle.h */,
+ 8697D6211DBEDE6100DB7D0F /* AIRGoogleMapCircle.m */,
+ 8697D6231DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.h */,
+ 8697D6241DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.m */,
+ );
+ name = AirGoogleMaps;
+ path = ../../ios/AirGoogleMaps;
+ sourceTree = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -312,16 +355,13 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AirMapsExplorer" */;
buildPhases = (
- DEE1DC9F05F890EC3C87C39A /* Check Pods Manifest.lock */,
- 53BB7F61AC8C3BE47A838FC0 /* 📦 Check Pods Manifest.lock */,
+ B27D5F0DA3595C3A8B5D31D9 /* [CP] Check Pods Manifest.lock */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
- D71F7E633EDE287637BD0861 /* 📦 Embed Pods Frameworks */,
- 1ED7E90E82F1447B3BDF7F89 /* 📦 Copy Pods Resources */,
- 39894B48A7C87B9F345BABA2 /* Embed Pods Frameworks */,
- 82539956530080D9C27BC6A0 /* Copy Pods Resources */,
+ A4662ADFE799D81334C129C7 /* [CP] Embed Pods Frameworks */,
+ DD0B426CF8A839A0248EA8C7 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -338,7 +378,7 @@
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0710;
+ LastUpgradeCheck = 710;
ORGANIZATIONNAME = Facebook;
TargetAttributes = {
00E356ED1AD99517003FC87E = {
@@ -400,29 +440,14 @@
shellPath = /bin/sh;
shellScript = "../node_modules/react-native/packager/react-native-xcode.sh";
};
- 1ED7E90E82F1447B3BDF7F89 /* 📦 Copy Pods Resources */ = {
+ A4662ADFE799D81334C129C7 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
- name = "📦 Copy Pods Resources";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 39894B48A7C87B9F345BABA2 /* Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Embed Pods Frameworks";
+ name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -430,29 +455,29 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- 53BB7F61AC8C3BE47A838FC0 /* 📦 Check Pods Manifest.lock */ = {
+ B27D5F0DA3595C3A8B5D31D9 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
- name = "📦 Check Pods Manifest.lock";
+ name = "[CP] Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
+ shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
- 82539956530080D9C27BC6A0 /* Copy Pods Resources */ = {
+ DD0B426CF8A839A0248EA8C7 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
- name = "Copy Pods Resources";
+ name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -460,36 +485,6 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer-resources.sh\"\n";
showEnvVarsInLog = 0;
};
- D71F7E633EDE287637BD0861 /* 📦 Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "📦 Embed Pods Frameworks";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AirMapsExplorer/Pods-AirMapsExplorer-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- DEE1DC9F05F890EC3C87C39A /* Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Check Pods Manifest.lock";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
- showEnvVarsInLog = 0;
- };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -504,30 +499,37 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 8620CC891DBD814A00B79BFE /* AIRGoogleMapCallout.m in Sources */,
+ 8620CC8D1DBD814A00B79BFE /* AIRGoogleMapMarkerManager.m in Sources */,
+ 8620CC881DBD814A00B79BFE /* AIRGoogleMap.m in Sources */,
2166AB2D1D82EC56007538D7 /* AIRMapCircleManager.m in Sources */,
21D346651D933B8C002BAD8A /* AIRMapUrlTile.m in Sources */,
2166AB2A1D82EC56007538D7 /* AIRMapCallout.m in Sources */,
- 213CA8F01D89F66A008623EC /* AIRGoogleMapMarkerManager.m in Sources */,
- 213CA8EF1D89F66A008623EC /* AIRGoogleMapMarker.m in Sources */,
+ 8620CC8E1DBD814A00B79BFE /* AIRGoogleMapPolygon.m in Sources */,
+ 8620CC8C1DBD814A00B79BFE /* AIRGoogleMapMarker.m in Sources */,
+ 8620CC8F1DBD814A00B79BFE /* AIRGoogleMapPolygonManager.m in Sources */,
+ 8620CC8A1DBD814A00B79BFE /* AIRGoogleMapCalloutManager.m in Sources */,
+ 8620CC8B1DBD814A00B79BFE /* AIRGoogleMapManager.m in Sources */,
2166AB2C1D82EC56007538D7 /* AIRMapCircle.m in Sources */,
- 213CA8ED1D89F66A008623EC /* AIRGoogleMapCalloutManager.m in Sources */,
+ 8620CC871DBD814A00B79BFE /* AIRGMSMarker.m in Sources */,
21D346661D933B8C002BAD8A /* AIRMapUrlTileManager.m in Sources */,
- 213CA8EC1D89F66A008623EC /* AIRGoogleMapCallout.m in Sources */,
- 213CA8EB1D89F66A008623EC /* AIRGoogleMap.m in Sources */,
+ 8620CC931DBD814A00B79BFE /* RCTConvert+GMSMapViewType.m in Sources */,
2166AB301D82EC56007538D7 /* AIRMapMarker.m in Sources */,
+ 8697D6221DBEDE6100DB7D0F /* AIRGoogleMapCircle.m in Sources */,
2166AB321D82EC56007538D7 /* AIRMapPolygon.m in Sources */,
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
- 21B248671DA4483D008FCB52 /* DummyView.m in Sources */,
2166AB3E1D82EC56007538D7 /* RCTConvert+MoreMapKit.m in Sources */,
+ 8697D6251DBEE22B00DB7D0F /* AIRGoogleMapCircleManager.m in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
2166AB331D82EC56007538D7 /* AIRMapPolygonManager.m in Sources */,
- 213CA8EE1D89F66A008623EC /* AIRGoogleMapManager.m in Sources */,
+ 8620CC901DBD814A00B79BFE /* AIRGoogleMapPolyline.m in Sources */,
2166AB2B1D82EC56007538D7 /* AIRMapCalloutManager.m in Sources */,
+ 8620CC921DBD814A00B79BFE /* DummyView.m in Sources */,
2166AB361D82EC56007538D7 /* SMCalloutView.m in Sources */,
2166AB351D82EC56007538D7 /* AIRMapPolylineManager.m in Sources */,
+ 8620CC911DBD814A00B79BFE /* AIRGoogleMapPolylineManager.m in Sources */,
2166AB291D82EC56007538D7 /* AIRMap.m in Sources */,
2166AB2E1D82EC56007538D7 /* AIRMapCoordinate.m in Sources */,
- 213CA8EA1D89F66A008623EC /* AIRGMSMarker.m in Sources */,
2166AB341D82EC56007538D7 /* AIRMapPolyline.m in Sources */,
2166AB2F1D82EC56007538D7 /* AIRMapManager.m in Sources */,
2166AB311D82EC56007538D7 /* AIRMapMarkerManager.m in Sources */,
@@ -572,6 +574,7 @@
INFOPLIST_FILE = AirMapsExplorerTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AirMapsExplorer.app/AirMapsExplorer";
@@ -590,6 +593,7 @@
INFOPLIST_FILE = AirMapsExplorerTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AirMapsExplorer.app/AirMapsExplorer";
@@ -598,7 +602,7 @@
};
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 2451EE03458E9BDA5F49B446 /* Pods-AirMapsExplorer.debug.xcconfig */;
+ baseConfigurationReference = 86C3F1E16CFF1D84E5317F85 /* Pods-AirMapsExplorer.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEAD_CODE_STRIPPING = NO;
@@ -621,7 +625,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 39293F18DE5A673E1BD8D397 /* Pods-AirMapsExplorer.release.xcconfig */;
+ baseConfigurationReference = 309B9CD42BBCF38F87696E10 /* Pods-AirMapsExplorer.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
FRAMEWORK_SEARCH_PATHS = (
diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock
index 5029967df..1f4c2d9a6 100644
--- a/example/ios/Podfile.lock
+++ b/example/ios/Podfile.lock
@@ -46,4 +46,6 @@ SPEC CHECKSUMS:
GoogleMaps: 06589b9a38097bce0cd6e90f0fd9b5e4b4a9344c
React: d80af5410aa500d0cb1bce2cc4493a584cf2ec92
-COCOAPODS: 0.39.0
+PODFILE CHECKSUM: be65689c848eff5d4099a483239b72acab62f6a4
+
+COCOAPODS: 1.1.1
diff --git a/ios/AirGoogleMaps/AIRGoogleMap.h b/ios/AirGoogleMaps/AIRGoogleMap.h
index 10a4f1f65..cc7aad5da 100644
--- a/ios/AirGoogleMaps/AIRGoogleMap.h
+++ b/ios/AirGoogleMaps/AIRGoogleMap.h
@@ -24,6 +24,9 @@
@property (nonatomic, copy) RCTDirectEventBlock onRegionChange;
@property (nonatomic, copy) RCTDirectEventBlock onRegionChangeComplete;
@property (nonatomic, strong) NSMutableArray *markers;
+@property (nonatomic, strong) NSMutableArray *polygons;
+@property (nonatomic, strong) NSMutableArray *polylines;
+@property (nonatomic, strong) NSMutableArray *circles;
@property (nonatomic, assign) BOOL showsBuildings;
@property (nonatomic, assign) BOOL showsTraffic;
diff --git a/ios/AirGoogleMaps/AIRGoogleMap.m b/ios/AirGoogleMaps/AIRGoogleMap.m
index c00b82b17..89059f3bc 100644
--- a/ios/AirGoogleMaps/AIRGoogleMap.m
+++ b/ios/AirGoogleMaps/AIRGoogleMap.m
@@ -7,6 +7,9 @@
#import "AIRGoogleMap.h"
#import "AIRGoogleMapMarker.h"
+#import "AIRGoogleMapPolygon.h"
+#import "AIRGoogleMapPolyline.h"
+#import "AIRGoogleMapCircle.h"
#import
#import
#import "RCTConvert+MapKit.h"
@@ -73,6 +76,9 @@ - (instancetype)init
if ((self = [super init])) {
_reactSubviews = [NSMutableArray new];
_markers = [NSMutableArray array];
+ _polygons = [NSMutableArray array];
+ _polylines = [NSMutableArray array];
+ _circles = [NSMutableArray array];
_initialRegionSet = false;
}
return self;
@@ -102,6 +108,18 @@ - (void)insertReactSubview:(id)subview atIndex:(NSInteger)atIndex
AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
marker.realMarker.map = self;
[self.markers addObject:marker];
+ } else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
+ AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
+ polygon.polygon.map = self;
+ [self.polygons addObject:polygon];
+ } else if ([subview isKindOfClass:[AIRGoogleMapPolyline class]]) {
+ AIRGoogleMapPolyline *polyline = (AIRGoogleMapPolyline*)subview;
+ polyline.polyline.map = self;
+ [self.polylines addObject:polyline];
+ } else if ([subview isKindOfClass:[AIRGoogleMapCircle class]]) {
+ AIRGoogleMapCircle *circle = (AIRGoogleMapCircle*)subview;
+ circle.circle.map = self;
+ [self.circles addObject:circle];
}
[_reactSubviews insertObject:(UIView *)subview atIndex:(NSUInteger) atIndex];
}
@@ -117,6 +135,18 @@ - (void)removeReactSubview:(id)subview {
AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
marker.realMarker.map = nil;
[self.markers removeObject:marker];
+ } else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
+ AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
+ polygon.polygon.map = nil;
+ [self.polygons removeObject:polygon];
+ } else if ([subview isKindOfClass:[AIRGoogleMapPolyline class]]) {
+ AIRGoogleMapPolyline *polyline = (AIRGoogleMapPolyline*)subview;
+ polyline.polyline.map = nil;
+ [self.polylines removeObject:polyline];
+ } else if ([subview isKindOfClass:[AIRGoogleMapCircle class]]) {
+ AIRGoogleMapCircle *circle = (AIRGoogleMapCircle*)subview;
+ circle.circle.map = nil;
+ [self.circles removeObject:circle];
}
[_reactSubviews removeObject:(UIView *)subview];
}
@@ -244,4 +274,5 @@ - (void)setShowsUserLocation:(BOOL)showsUserLocation {
- (BOOL)showsUserLocation {
return self.myLocationEnabled;
}
+
@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapCircle.h b/ios/AirGoogleMaps/AIRGoogleMapCircle.h
new file mode 100644
index 000000000..685cc649e
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapCircle.h
@@ -0,0 +1,20 @@
+//
+// AIRGoogleMapsCircle.h
+//
+// Created by Nick Italiano on 10/24/16.
+//
+
+#import
+#import "AIRMapCoordinate.h"
+
+@interface AIRGoogleMapCircle : UIView
+
+@property (nonatomic, strong) GMSCircle *circle;
+@property (nonatomic, assign) double radius;
+@property (nonatomic, assign) CLLocationCoordinate2D centerCoordinate;
+@property (nonatomic, assign) UIColor *strokeColor;
+@property (nonatomic, assign) double strokeWidth;
+@property (nonatomic, assign) UIColor *fillColor;
+@property (nonatomic, assign) int zIndex;
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapCircle.m b/ios/AirGoogleMaps/AIRGoogleMapCircle.m
new file mode 100644
index 000000000..1698bee8c
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapCircle.m
@@ -0,0 +1,57 @@
+//
+// AIRGoogleMapsCircle.m
+//
+// Created by Nick Italiano on 10/24/16.
+//
+#import
+#import "AIRGoogleMapCircle.h"
+#import
+#import "RCTUtils.h"
+
+@implementation AIRGoogleMapCircle
+
+- (instancetype)init
+{
+ if (self = [super init]) {
+ _circle = [[GMSCircle alloc] init];
+ }
+ return self;
+}
+
+- (void)setRadius:(double)radius
+{
+ _radius = radius;
+ _circle.radius = radius;
+}
+
+- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
+{
+ _centerCoordinate = centerCoordinate;
+ _circle.position = centerCoordinate;
+}
+
+-(void)setStrokeColor:(UIColor *)strokeColor
+{
+ _strokeColor = strokeColor;
+ _circle.strokeColor = strokeColor;
+}
+
+-(void)setStrokeWidth:(double)strokeWidth
+{
+ _strokeWidth = strokeWidth;
+ _circle.strokeWidth = strokeWidth;
+}
+
+-(void)setFillColor:(UIColor *)fillColor
+{
+ _fillColor = fillColor;
+ _circle.fillColor = fillColor;
+}
+
+-(void)setZIndex:(int)zIndex
+{
+ _zIndex = zIndex;
+ _circle.zIndex = zIndex;
+}
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapCircleManager.h b/ios/AirGoogleMaps/AIRGoogleMapCircleManager.h
new file mode 100644
index 000000000..481b6d6c5
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapCircleManager.h
@@ -0,0 +1,11 @@
+//
+// AIRGoogleMapCircleManager.h
+//
+// Created by Nick Italiano on 10/24/16.
+//
+
+#import "RCTViewManager.h"
+
+@interface AIRGoogleMapCircleManager : RCTViewManager
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapCircleManager.m b/ios/AirGoogleMaps/AIRGoogleMapCircleManager.m
new file mode 100644
index 000000000..62a164d22
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapCircleManager.m
@@ -0,0 +1,33 @@
+//
+// AIRGoogleMapCircleManager.m
+//
+// Created by Nick Italiano on 10/24/16.
+//
+
+#import "AIRGoogleMapCircleManager.h"
+#import "AIRGoogleMapCircle.h"
+#import "RCTBridge.h"
+#import "UIView+React.h"
+
+@interface AIRGoogleMapCircleManager()
+
+@end
+
+@implementation AIRGoogleMapCircleManager
+
+RCT_EXPORT_MODULE()
+
+- (UIView *)view
+{
+ AIRGoogleMapCircle *circle = [AIRGoogleMapCircle new];
+ return circle;
+}
+
+RCT_EXPORT_VIEW_PROPERTY(radius, double)
+RCT_REMAP_VIEW_PROPERTY(center, centerCoordinate, CLLocationCoordinate2D)
+RCT_EXPORT_VIEW_PROPERTY(strokeColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(strokeWidth, double)
+RCT_EXPORT_VIEW_PROPERTY(fillColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(zIndex, int)
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapManager.m b/ios/AirGoogleMaps/AIRGoogleMapManager.m
index ffc9a47c7..01735990c 100644
--- a/ios/AirGoogleMaps/AIRGoogleMapManager.m
+++ b/ios/AirGoogleMaps/AIRGoogleMapManager.m
@@ -12,6 +12,7 @@
#import "RCTUIManager.h"
#import "RCTConvert+CoreLocation.h"
#import "RCTConvert+MapKit.h"
+#import "RCTConvert+GMSMapViewType.h"
#import "RCTEventDispatcher.h"
#import "AIRGoogleMap.h"
#import "UIView+React.h"
@@ -61,6 +62,7 @@ - (UIView *)view
RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onRegionChangeComplete, RCTDirectEventBlock)
+RCT_EXPORT_VIEW_PROPERTY(mapType, GMSMapViewType)
RCT_EXPORT_METHOD(fitToElements:(nonnull NSNumber *)reactTag
animated:(BOOL)animated)
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolygon.h b/ios/AirGoogleMaps/AIRGoogleMapPolygon.h
new file mode 100644
index 000000000..26f0236d8
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolygon.h
@@ -0,0 +1,21 @@
+//
+// AIRGoogleMapPolygon.h
+//
+// Created by Nick Italiano on 10/22/16.
+//
+
+#import
+#import "AIRMapCoordinate.h"
+
+@interface AIRGoogleMapPolygon : UIView
+
+@property (nonatomic, strong) GMSPolygon *polygon;
+@property (nonatomic, strong) NSArray *coordinates;
+
+@property (nonatomic, assign) UIColor *fillColor;
+@property (nonatomic, assign) double strokeWidth;
+@property (nonatomic, assign) UIColor *strokeColor;
+@property (nonatomic, assign) BOOL geodesic;
+@property (nonatomic, assign) int zIndex;
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolygon.m b/ios/AirGoogleMaps/AIRGoogleMapPolygon.m
new file mode 100644
index 000000000..8727cad37
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolygon.m
@@ -0,0 +1,64 @@
+//
+// AIRGoogleMapPolygon.m
+//
+// Created by Nick Italiano on 10/22/16.
+//
+
+#import "AIRGoogleMapPolygon.h"
+#import
+
+@implementation AIRGoogleMapPolygon
+
+- (instancetype)init
+{
+ if (self = [super init]) {
+ _polygon = [[GMSPolygon alloc] init];
+ }
+
+ return self;
+}
+
+- (void)setCoordinates:(NSArray *)coordinates
+{
+ _coordinates = coordinates;
+
+ GMSMutablePath *path = [GMSMutablePath path];
+ for(int i = 0; i < coordinates.count; i++)
+ {
+ [path addCoordinate:coordinates[i].coordinate];
+ }
+
+ _polygon.path = path;
+}
+
+-(void)setFillColor:(UIColor *)fillColor
+{
+ _fillColor = fillColor;
+ _polygon.fillColor = fillColor;
+}
+
+-(void)setStrokeWidth:(double)strokeWidth
+{
+ _strokeWidth = strokeWidth;
+ _polygon.strokeWidth = strokeWidth;
+}
+
+-(void)setStrokeColor:(UIColor *) strokeColor
+{
+ _strokeColor = strokeColor;
+ _polygon.strokeColor = strokeColor;
+}
+
+-(void)setGeodesic:(BOOL)geodesic
+{
+ _geodesic = geodesic;
+ _polygon.geodesic = geodesic;
+}
+
+-(void)setZIndex:(int)zIndex
+{
+ _zIndex = zIndex;
+ _polygon.zIndex = zIndex;
+}
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.h b/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.h
new file mode 100644
index 000000000..fd6040ca0
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.h
@@ -0,0 +1,11 @@
+//
+// AIRGoogleMapPolylgoneManager.h
+//
+// Created by Nick Italiano on 10/22/16.
+//
+
+#import "RCTViewManager.h"
+
+@interface AIRGoogleMapPolygonManager : RCTViewManager
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m b/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m
new file mode 100644
index 000000000..5e6c8d319
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m
@@ -0,0 +1,38 @@
+//
+// AIRGoogleMapPolylgoneManager.m
+//
+// Created by Nick Italiano on 10/22/16.
+//
+#import "AIRGoogleMapPolygonManager.h"
+
+#import "RCTBridge.h"
+#import "RCTConvert.h"
+#import "RCTConvert+CoreLocation.h"
+#import "RCTConvert+MoreMapKit.h"
+#import "RCTEventDispatcher.h"
+#import "UIView+React.h"
+#import "RCTViewManager.h"
+#import "AIRGoogleMapPolygon.h"
+
+@interface AIRGoogleMapPolygonManager()
+
+@end
+
+@implementation AIRGoogleMapPolygonManager
+
+RCT_EXPORT_MODULE()
+
+- (UIView *)view
+{
+ AIRGoogleMapPolygon *polygon = [AIRGoogleMapPolygon new];
+ return polygon;
+}
+
+RCT_EXPORT_VIEW_PROPERTY(coordinates, AIRMapCoordinateArray)
+RCT_EXPORT_VIEW_PROPERTY(fillColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(strokeWidth, double)
+RCT_EXPORT_VIEW_PROPERTY(strokeColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(geodesic, BOOL)
+RCT_EXPORT_VIEW_PROPERTY(zIndex, int)
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolyline.h b/ios/AirGoogleMaps/AIRGoogleMapPolyline.h
new file mode 100644
index 000000000..b127567a5
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolyline.h
@@ -0,0 +1,22 @@
+//
+// AIRGoogleMapPolyline.h
+//
+// Created by Nick Italiano on 10/22/16.
+//
+#import
+#import
+#import "AIRMapCoordinate.h"
+#import "AIRGoogleMapMarker.h"
+
+@interface AIRGoogleMapPolyline : UIView
+
+@property (nonatomic, strong) GMSPolyline* polyline;
+@property (nonatomic, strong) NSArray *coordinates;
+@property (nonatomic, strong) UIColor *strokeColor;
+@property (nonatomic, assign) double strokeWidth;
+@property (nonatomic, assign) UIColor *fillColor;
+@property (nonatomic, assign) BOOL geodesic;
+@property (nonatomic, assign) NSString *title;
+@property (nonatomic, assign) int zIndex;
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolyline.m b/ios/AirGoogleMaps/AIRGoogleMapPolyline.m
new file mode 100644
index 000000000..c55621e97
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolyline.m
@@ -0,0 +1,73 @@
+//
+// AIRGoogleMapPolyline.m
+//
+// Created by Nick Italiano on 10/22/16.
+//
+#import
+#import "AIRGoogleMapPolyline.h"
+#import "AIRMapCoordinate.h"
+#import "AIRGoogleMapMarker.h"
+#import "AIRGoogleMapMarkerManager.h"
+#import
+#import "RCTUtils.h"
+
+@implementation AIRGoogleMapPolyline
+
+- (instancetype)init
+{
+ if (self = [super init]) {
+ _polyline = [[GMSPolyline alloc] init];
+ }
+ return self;
+}
+
+-(void)setCoordinates:(NSArray *)coordinates
+{
+ _coordinates = coordinates;
+
+ GMSMutablePath *path = [GMSMutablePath path];
+ for(int i = 0; i < coordinates.count; i++)
+ {
+ [path addCoordinate:coordinates[i].coordinate];
+ }
+
+ _polyline.path = path;
+}
+
+-(void)setStrokeColor:(UIColor *)strokeColor
+{
+ _strokeColor = strokeColor;
+ _polyline.strokeColor = strokeColor;
+}
+
+-(void)setStrokeWidth:(double)strokeWidth
+{
+ _strokeWidth = strokeWidth;
+ _polyline.strokeWidth = strokeWidth;
+}
+
+-(void)setFillColor:(UIColor *)fillColor
+{
+ _fillColor = fillColor;
+ _polyline.spans = @[[GMSStyleSpan spanWithColor:fillColor]];
+}
+
+-(void)setGeodesic:(BOOL)geodesic
+{
+ _geodesic = geodesic;
+ _polyline.geodesic = geodesic;
+}
+
+-(void)setTitle:(NSString *)title
+{
+ _title = title;
+ _polyline.title = _title;
+}
+
+-(void) setZIndex:(int)zIndex
+{
+ _zIndex = zIndex;
+ _polyline.zIndex = zIndex;
+}
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.h b/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.h
new file mode 100644
index 000000000..48aaf8527
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.h
@@ -0,0 +1,11 @@
+//
+// AIRGoogleMapPolylineManager.h
+//
+// Created by Nick Italiano on 10/22/16.
+//
+
+#import "RCTViewManager.h"
+
+@interface AIRGoogleMapPolylineManager : RCTViewManager
+
+@end
diff --git a/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m b/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m
new file mode 100644
index 000000000..68817b138
--- /dev/null
+++ b/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m
@@ -0,0 +1,39 @@
+//
+// AIRGoogleMapPolylineManager.m
+//
+// Created by Nick Italiano on 10/22/16.
+//
+
+#import "AIRGoogleMapPolylineManager.h"
+
+#import "RCTBridge.h"
+#import "RCTConvert.h"
+#import "RCTConvert+CoreLocation.h"
+#import "RCTConvert+MoreMapKit.h"
+#import "RCTEventDispatcher.h"
+#import "UIView+React.h"
+#import "RCTViewManager.h"
+#import "AIRGoogleMapPolyline.h"
+
+@interface AIRGoogleMapPolylineManager()
+
+@end
+
+@implementation AIRGoogleMapPolylineManager
+
+RCT_EXPORT_MODULE()
+
+- (UIView *)view
+{
+ AIRGoogleMapPolyline *polyline = [AIRGoogleMapPolyline new];
+ return polyline;
+}
+
+RCT_EXPORT_VIEW_PROPERTY(coordinates, AIRMapCoordinateArray)
+RCT_EXPORT_VIEW_PROPERTY(fillColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(strokeColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(strokeWidth, double)
+RCT_EXPORT_VIEW_PROPERTY(geodesic, BOOL)
+RCT_EXPORT_VIEW_PROPERTY(zIndex, int)
+
+@end
diff --git a/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h b/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h
new file mode 100644
index 000000000..a753f4331
--- /dev/null
+++ b/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h
@@ -0,0 +1,13 @@
+//
+// RCTConvert+GMSMapViewType.h
+//
+// Created by Nick Italiano on 10/23/16.
+//
+
+#import
+#import
+#import "RCTConvert.h"
+
+@interface RCTConvert (GMSMapViewType)
+
+@end
diff --git a/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m b/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m
new file mode 100644
index 000000000..42053fb1d
--- /dev/null
+++ b/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m
@@ -0,0 +1,21 @@
+//
+// RCTConvert+GMSMapViewType.m
+//
+// Created by Nick Italiano on 10/23/16.
+//
+
+#import "RCTConvert+GMSMapViewType.h"
+#import
+#import "RCTConvert.h"
+
+@implementation RCTConvert (GMSMapViewType)
+ RCT_ENUM_CONVERTER(GMSMapViewType,
+ (
+ @{
+ @"standard": @(kGMSTypeNormal),
+ @"hybrid": @(kGMSTypeHybrid),
+ @"terrain": @(kGMSTypeTerrain),
+ @"none": @(kGMSTypeNone)
+ }
+ ), kGMSTypeTerrain, intValue)
+@end
diff --git a/react-native-google-maps.podspec b/react-native-google-maps.podspec
index f0b23a057..e306422cd 100644
--- a/react-native-google-maps.podspec
+++ b/react-native-google-maps.podspec
@@ -9,7 +9,7 @@ Pod::Spec.new do |s|
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/airbnb/react-native-maps.git" }
- s.source_files = "ios/AirMaps/**/*.{h,m}"
+ s.source_files = "ios/AirGoogleMaps/**/*.{h,m}"
s.dependency 'React'
s.dependency 'GoogleMaps', '2.0.1'