Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

react-native-open-maps

TravisDavidnpm

πŸ—Ί A simple cross-platform library to help perform map actions to the corresponding device's map (Google or Apple Maps)

react-native-open-maps works by creating a deep link for either Apple maps or Google maps that can be used to open up the relevant map application. In order to maximize compatibility some platform specific parameters are omitted, but simplifies development efforts and ensures a smooth user experience.

Features

  • βœ… Open the map coordinates immediately
  • βœ… Create a delayed invoked function that will open the map
  • βœ… Create a string of the map link
  • Cross-compatible properties among both map applications

Demo Gif

Usage

  1. Install the repository
    $ npm install --save react-native-open-maps
  2. Add an import to the top of your file
    importopenMapfrom'react-native-open-maps';
  3. Put it all together
    importReact,{Component}from'react';import{Button}from'react-native';importopenMapfrom'react-native-open-maps';exportdefaultclassAppextendsComponent{_goToYosemite(){openMap({latitude: 37.865101,longitude: -119.538330});}render(){return(<Buttoncolor={'#bdc3c7'}onPress={this._goToYosemite}title="Click To Open Maps πŸ—Ί"/>);}}
  4. BONUS: You can also create delayed functions for more of that 1 - 1 mapping flavor 🍦.
import{createOpenLink}from'react-native-open-maps';constyosemite={latitude: 37.865101,longitude: -119.538330};constopenYosemite=createOpenLink(yosemite);constopenYosemiteZoomedOut=createOpenLink({ ...yosemite,zoom: 30});constfacebookHQ={latitude: 37.4847,longitude: 122.1477};constopenFacebookHQ=createOpenLink(facebookHQ);// Condensed for Readability...render(){return(<Buttoncolor={'#bdc3c7'}onPress={openYosemite}title="Go to Yosemite πŸ”"/><Buttoncolor={'#bdc3c7'}onPress={openFacebookHQ}title="Go to Facebook HQ πŸ•‹"/>);

API

default function open(options)

react-native-open-maps immediately opens the map of the coordinates and the settings

{ createOpenLink(options) }

Creates a delayed invoked function to open the map. This is useful for binding functions to onPress() in a succinct manner. Think of it like ... function openToMe() { open(coordinates) }

{ createMapLink(options) }

Creates the raw link for the map.

options

πŸ”‘ Italicize indicates optional

PropertiesTypeDescriptionExample
latitudenumberThe latitude37.865101
longitudenumberThe longitude-119.538330
zoomnumberThe zoom level, only works with latitude and longitude18
Default: 15
providerstring
[google,apple]
If no provider set, it will determine according to Platform.OSapple
querystringWill act according to the map used. Refer to query property"Yosemite Trail"
travelTypeenumeration : [drive, walk,public_transport]Use this parameter in conjunction with start and end to determine transportation type. Default is drive"drive"
startstring that geolocation can understandThe start location that can be interpreted as a geolocation, omit if you want to use current location / "My Location". See Apple and Google docs for more details on how to define geolocations."New York City, New York, NY"
endstring that geolocation can understand.The end location that can be interpreted as a geolocation. See Apple and Google docs for more details on how to define geolocations."SOHO, New York, NY"
navigate_modestring
[preview,navigate]
Determines whether map should open in preview mode or in navigate mode (with turn-by-turn navigation).
This parameter only works in conjunction with end. Platform map uses current location as start parameter
"navigate"
default: "preview"

Note: Combining query with latitude and longitude will override the query parameter.

Map Actions

To perform certain map actions refer these necessary parameters

  • Setting Directions: end, [ start , travelType ]
  • Display Map Around Coordinates:latitude+longitude, [ zoom ]
  • Query Map For Location:query
Query Property

The query behavior differs per platform:

  • Apple Maps: If latitude and longitude is provided, this will place a marker with the query as a label. If no latitude or longitude is provided, it will center map to closest query match.
  • Google Maps: Will override latitude and longitude if present and center map to closest query match. Without a query, you may however use <latitude>,<longitude> as a string value in the query to have a unnamed marker on the map.

License

MIT Β© Brandon Him

Shameless Plug πŸ”Œ

If you like this repository, check out my other react-native projects or follow me for other open-source projects:

  • react-native-masonry: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions.
  • react-native-hero: A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
  • rn-component-cookbook: A open-source cookbook with recipes for handling everyday issues when building robust, modular react-native components
  • generator-rnc: A yeoman generator to scaffold a ready-to-go, open-source react-native component (Jest, Package dependencies, Travis, etc)

About

πŸ—Ί A simple react-native library to perform cross-platform map actions (Google or Apple Maps)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages