'use strict'; var React = require('react-native'); var MapboxGLMap = require('react-native-mapbox-gl'); var mapRef = 'mapRef'; var { AppRegistry, StyleSheet, Text, StatusBarIOS, View } = React; var Example = React.createClass({ mixins: [MapboxGLMap.Mixin], getInitialState() { return { center: { latitude: 40.72052634, longitude: -73.97686958312988 }, zoom: 11, annotations: [{ coordinates: [40.72052634, -73.97686958312988], "type": "point", title: 'This is marker 1', subtitle: 'It has a rightCalloutAccessory too', rightCalloutAccessory: { url: 'https://cldup.com/9Lp0EaBw5s.png', height: 25, width: 25 }, annotationImage: { url: 'https://cldup.com/CnRLZem9k9.png', height: 25, width: 25 }, id: 'marker1' }, { coordinates: [40.714541341726175,-74.00579452514648], "type": "point", title: 'Important!', subtitle: 'Neat, this is a custom annotation image', annotationImage: { url: 'https://cldup.com/7NLZklp8zS.png', height: 25, width: 25 }, id: 'marker2' }, { "coordinates": [[40.76572150042782,-73.99429321289062],[40.743485405490695, -74.00218963623047],[40.728266950429735,-74.00218963623047],[40.728266950429735,-73.99154663085938],[40.73633186448861,-73.98983001708984],[40.74465591168391,-73.98914337158203],[40.749337730454826,-73.9870834350586]], "type": "polyline", "strokeColor": "#00FB00", "strokeWidth": 4, "strokeAlpha": .5, "id": "foobar" }, { "coordinates": [[40.749857912194386, -73.96820068359375], [40.741924698522055,-73.9735221862793], [40.735681504432264,-73.97523880004883], [40.7315190495212,-73.97438049316406], [40.729177554196376,-73.97180557250975], [40.72345355209305,-73.97438049316406], [40.719290332250544,-73.97455215454102], [40.71369559554873,-73.97729873657227], [40.71200407096382,-73.97850036621094], [40.71031250340588,-73.98691177368163], [40.71031250340588,-73.99154663085938]], "type": "polygon", "fillAlpha":1, "strokeColor": "#fffff", "fillColor": "blue", "id": "zap" }] }; }, onRegionChange(location) { this.setState({ currentZoom: location.zoom }); }, onRegionWillChange(location) { console.log(location); }, onUpdateUserLocation(location) { console.log(location); }, onOpenAnnotation(annotation) { console.log(annotation); }, onRightAnnotationTapped(e) { console.log(e); }, render: function() { StatusBarIOS.setHidden(true); return ( this.setDirectionAnimated(mapRef, 0)}> Set direction to 0 this.setZoomLevelAnimated(mapRef, 6)}> Zoom out to zoom level 6 this.setCenterCoordinateAnimated(mapRef, 48.8589, 2.3447)}> Go to Paris at current zoom level {parseInt(this.state.currentZoom)} this.setCenterCoordinateZoomLevelAnimated(mapRef, 35.68829, 139.77492, 14)}> Go to Tokyo at fixed zoom level 14 this.addAnnotations(mapRef, [{ coordinates: [40.73312,-73.989], type: 'point', title: 'This is a new marker', id: 'foo' }, { "coordinates": [[40.749857912194386, -73.96820068359375], [40.741924698522055,-73.9735221862793], [40.735681504432264,-73.97523880004883], [40.7315190495212,-73.97438049316406], [40.729177554196376,-73.97180557250975], [40.72345355209305,-73.97438049316406], [40.719290332250544,-73.97455215454102], [40.71369559554873,-73.97729873657227], [40.71200407096382,-73.97850036621094], [40.71031250340588,-73.98691177368163], [40.71031250340588,-73.99154663085938]], "type": "polygon", "fillAlpha": 1, "fillColor": "#000", "strokeAlpha": 1, "id": "new-black-polygon" }])}> Add new marker this.selectAnnotationAnimated(mapRef, 0)}> Open first popup this.removeAnnotation(mapRef, 0)}> Remove first annotation ); } }); var styles = StyleSheet.create({ container: { flex: 1 }, map: { flex: 1 }, text: { padding: 3 } }); AppRegistry.registerComponent('your-app-name', () => Example);