Skip to content

Conversation

Stophface
Copy link
Contributor

@Stophface Stophface commented Apr 18, 2018

Does any other open PR do the same thing?

No, there is no other Pull Request doing the same thing.

What issue is this PR fixing?

No issue, it is a new feature.
Requested e.g. here: #1946, #1876

How did you test this PR?

I implemented an application locally with it. It can be recreated with this repo: https://github.com/Stophface/maps. If needed I can create a branch from the repo I doing the pull request with to make an example application.

  • Which platform (eg. Android/iOS) & Maps API (eg. Google/Apple) does this change affect, if any?
    -> Its changes affects both platforms.

  • Did you test this on a real device, or in a simulator?
    -> On iOS and Android simulator.

  • Are there any platforms you were not able to test?
    -> No.

Generally

This feature adds MBTiles support for react-native-maps. The component LocalTile is great. But when there are a lot of maptiles, the downloading, unzipping and managing on the dvivce becomes ressource intensive and slow. MBTiles is a widely known format to store Map Tiles in a SQLite database. The MBTiles specification was created by Mapbox.

Set up a project as usual and include these lines into your application:

<MapView.MbTile
    pathTemplate={"path/to/mbtiles/database.mbtiles"}
    tileSize={256} />

Make sure to include the .mbtiles ending at the path!
An MBTiles database can easily be created with various tools e.g.

Also make sure that the database uses the z/x/y specification of Google, and not the TMS or another Tile-Specification (information)! The MBTiles implementation is based on #1876. It uses FMDB on iOS to access the database. FMDB is statically linked to AirMaps.xcodeproj in lib/ios/. On Android it uses JDBC to connect to the database. No linking needed here. JDBC comes natively with Android. For a complete history please see this repository: https://github.com/Stophface/react-native-maps-0.20.1.

Copy link

@h3ll0w0rld123 h3ll0w0rld123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work! Glad you got it to work. I had a few questions about certain things, hope you can inform me.

//

#import "AIRMapMbTileOverlay.h"
#import "FMDatabase.h"
Copy link

@h3ll0w0rld123 h3ll0w0rld123 Apr 18, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I'm not too familiar with ios, but isn't there an included sqlite lib? Can you explain the rationale of including a large library?

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The FMDB library is not that large - 173KB in total. It makes working with SQLite way simpler and compared to the native SQLite3 only a few lines of code are needed. The native SQLite3 lib is sort of a raw library which makes it hard to use. One needs a lot of lines of code to achieve what can be achieved with the FMDB library with only a few lines. Further, I have the feeling that the FMDB database is the standard when it comes to SQLite access on iOS: Rewriting it to SQLite3would make it harder for other collaborators to maintain and extend the code. Just look at the online ressources around FMDB and SQLite3. I think it is better to stick with FMDB. Rewriting to SQLite3 would make the code overly complicated and less maintainable. Maintainability and extenability is in my opinion more important on a community based project than adding 173KB of size to the project.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, can someone with more iOS experience than I do comment?

[query replaceCharactersInRange: [query rangeOfString: @"{x}"] withString:[NSString stringWithFormat:@"%li", path.x]];
[query replaceCharactersInRange: [query rangeOfString: @"{y}"] withString:[NSString stringWithFormat:@"%li", path.y]];
FMResultSet *databaseResult = [offlineDataDatabase executeQuery:query];
if ([databaseResult next]) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider the following (may contain syntax errors since I'm not familiar with this language)

NSData *tile = nil
if ([databaseResult next]) {
  tile = [databaseResult dataForColumn:@"tile_data"];
}
[offlineDataDatabase close];
result(tile,nil);

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I won't change that due to code consistency. Look at

https://github.com/react-community/react-native-maps/blob/29fb4a9228b6a7d33881c0d74e403f68b60e4bef/lib/ios/AirMaps/AIRMapLocalTileOverlay.m#L22-L28

which is the template for my feature. I think consistency is better here. Thus I will stick with

if ([databaseResult next]) {
    NSData *tile = [databaseResult dataForColumn:@"tile_data"];
    [offlineDataDatabase close];
    result(tile,nil);
} else {
    [offlineDataDatabase close];
    result(nil,nil);
}

}
offlineDataDatabase.close();
return null;
} catch (Exception e) {
Copy link

@h3ll0w0rld123 h3ll0w0rld123 Apr 18, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe catching a generic exception like this might lead to some bugs. In general, it is better to be specific about your exceptions when you know they exist, like this.

Consider the following:

  1. You open a connection successfully, but your string replace (currently line line 55) throws an error. I believe you will end up not closing the database.

I would look into other code that uses this lib and see how they do error handling, but on very cursory glance, I would structure it like the following:


try {
  SQLiteDatabase offlineDataDatabase offlineDataDatabase = SQLiteDatabase.openDatabase(this.pathTemplate, null, SQLiteDatabase.OPEN_READONLY);
  String query = rawQuery.replace("{x}", Integer.toString(x)).replace("{y}", Integer.toString(y))
                                                                                                    .replace("{z}", Integer.toString(zoom));
  Cursor cursor = offlineDataDatabase.rawQuery(query, null);
  byte[] tile = null
  if(cursor.moveToFirst()) {
    tile = cursor.getBlob(5);
    cursor.close();
  } 
  offlineDataDatabase.close();
  return tile;
} catch (SQLiteCantOpenDatabaseException e) {
  // error handle, this case is when database can't open so return null?
} catch (android.database.sqlite.SQLiteException e) {
  // error handle, past an open database connection so close and return null.
} catch (Exception e) {
  // all other cases, return null?
}


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possibly even better:

byte[] tile = null
try {
  SQLiteDatabase offlineDataDatabase offlineDataDatabase = SQLiteDatabase.openDatabase(this.pathTemplate, null, SQLiteDatabase.OPEN_READONLY);
  String query = rawQuery.replace("{x}", Integer.toString(x)).replace("{y}", Integer.toString(y))
                                                                                                    .replace("{z}", Integer.toString(zoom));
  Cursor cursor = offlineDataDatabase.rawQuery(query, null);
  if(cursor.moveToFirst()) {
    tile = cursor.getBlob(5);
    cursor.close();
  } 
  offlineDataDatabase.close();
} catch (SQLiteCantOpenDatabaseException e) {
  // error handle, this case is when database can't open so return null?
} catch (android.database.sqlite.SQLiteException e) {
  // error handle, past an open database connection so close and return null.
} catch (Exception e) {
  // all other cases, return null?
}

return tile;

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing that out. I changed the "closing the database" problem and included some catch. I prefer the code written slightly different, so I left that. I included a more elaborated error handling namely SQLiteCantOpenDatabaseException, SQLiteDatabaseCorruptException and SQLiteDatabaseLockedException.

https://github.com/Stophface/react-native-maps/blob/a4b5460d37f901a2befd36481461412f18ac0c3c/lib/android/src/main/java/com/airbnb/android/react/maps/AirMapMbTile.java#L55-L81

byte[] tile = null;
try {
    SQLiteDatabase offlineDataDatabase = SQLiteDatabase.openDatabase(this.pathTemplate, null, SQLiteDatabase.OPEN_READONLY);
    String query = rawQuery.replace("{x}", Integer.toString(x))
        .replace("{y}", Integer.toString(y))
        .replace("{z}", Integer.toString(zoom));
    Cursor cursor = offlineDataDatabase.rawQuery(query, null);
        if (cursor.moveToFirst()) {
            tile = cursor.getBlob(5);
        }
    cursor.close();
    offlineDataDatabase.close();
    } catch (SQLiteCantOpenDatabaseException e) {
        e.printStackTrace();
        throw e;
    } catch (SQLiteDatabaseCorruptException e) {
        e.printStackTrace();
        throw e;
    } catch (SQLiteDatabaseLockedException e) {
        e.printStackTrace();
        throw e;
    } catch (Exception e) {
        e.printStackTrace();
        throw e;
    } finally {
        return tile;
    }

if(cursor.moveToFirst()){
byte[] tile = cursor.getBlob(5);
cursor.close();
offlineDataDatabase.close();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My personal preference is to consolidate all cleanup and return into one section to prevent future bugs, see code snippet below.

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it to which makes more sense to me.

if (cursor.moveToFirst()) {
    tile = cursor.getBlob(5);
}
cursor.close();
offlineDataDatabase.close();
return tile;

.replace("{y}", Integer.toString(y))
.replace("{z}", Integer.toString(zoom));
Cursor cursor = offlineDataDatabase.rawQuery(query, null);
if(cursor.moveToFirst()){

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whitespace between ) and {, 'if' and '('.

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added whitespaces.

if (cursor.moveToFirst()) {
    tile = cursor.getBlob(5);
}



-(void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *, NSError *))result {
FMDatabase *offlineDataDatabase = [FMDatabase databaseWithPath:self.URLTemplate];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this function need error handling?

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SQLite does not return execptions, only an error code for which one can check. I added a check if a file exists at the given path.

NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:self.URLTemplate]) {
    FMDatabase *offlineDataDatabase = [FMDatabase databaseWithPath:self.URLTemplate];
    [offlineDataDatabase open];
    ....
} else {
    NSLog(@"Database not found. Wrong path");
}
``

}
offlineDataDatabase.close();
return null;
} catch (Exception e) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

@Stophface Stophface May 17, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, should be blank. iOS and Android.

@Stophface
Copy link
Contributor Author

I won't have time the next ~two weeks to look into this. Using SQLite instead of FMDB makes sense. The rest I have to check.

@h3ll0w0rld123
Copy link

No worries at all, I would love to help more if I can, but not sure if I can be that helpful implementation wise. I won't be needing this for a few weeks myself, but when the time comes I will definitely be more proactive about getting something like this out.

Whom should we talk to to also review this?

@h3ll0w0rld123
Copy link

@Stophface Any updates on timetables? No rush, just wanted a heads up. In 2 or so weeks I'll have to start pushing this along and fork my own repo if I have to--would highly prefer to not because It'll take me a lot longer to pick up on the native code.

Do we have any one else to code review too to get this moving along?

@Stophface
Copy link
Contributor Author

@h3ll0w0rld123 I think in around two weeks I have time to look into this. Maybe a few days earlier. Pretty much snowed in with work at the moment.

It works though, so you can use it :)

@h3ll0w0rld123
Copy link

h3ll0w0rld123 commented Apr 27, 2018

Good to know @Stophface, but I'll need any code to be merged into the mainline before using it. I'm also using Expo, so it takes them a while to accept the new changes as well, which is why I wanted to get this moving. Do you know who reviews PR for this project that we can tag?

@h3ll0w0rld123
Copy link

@rborn @zavadpe @alvelig Since you guys were involved with #1876 do you mind taking a look at this PR and let @Stophface and me know if there needs to be any changes?

@alvelig
Copy link
Contributor

alvelig commented May 1, 2018

@zavadpe 🐽

@ahmetabdi
Copy link
Contributor

🙏 Get this in please

@ahmetabdi
Copy link
Contributor

@terribleben Is another name to tag

@h3ll0w0rld123
Copy link

@Stophface have you gotten more time to look at this?

@zavadpe
Copy link
Contributor

zavadpe commented May 15, 2018

@Stophface Sorry, been busy last couple of weeks. From a brief look I took it looks quite fine. I would consider notes from @h3ll0w0rld123 and you've got some conflicts to solve. I can take a deeper look then.

@Stophface
Copy link
Contributor Author

@zavadpe Yeah the notes from @h3ll0w0rld123 are valuable. I might be able to look into it on the weekend.
Regarding the conflicts: I do not have write access to repo so I cannot resolve them.

@zavadpe
Copy link
Contributor

zavadpe commented May 15, 2018

@Stophface Conflicts must be resolved in your fork repository..

@Stophface
Copy link
Contributor Author

Stophface commented May 17, 2018

I commented on all the comments of @h3ll0w0rld123 and inserted the changes into my code as written in the comments (@alvelig, @ahmetabdi). I am working on resolving the merge conflicts @zavadpe.

@Stophface
Copy link
Contributor Author

Stophface commented May 18, 2018

@h3ll0w0rld123, @alvelig, @ahmetabdi, @zavadpe, @mlc I added the changes, resolved the merge conflicts. I also extended the Readme and included an example file.

If everyone is happy with my changes (see comments on @h3ll0w0rld123 suggestions) and the merge conflicts are properly solved, someone should merge it?!

@h3ll0w0rld123
Copy link

@Stophface looks like your travis ci build has some errors, looks like it's a linter problem.

Anyone else can review this?

@Stophface
Copy link
Contributor Author

@stobis @rborn Well yeah. I didn't remove it....

@rborn
Copy link
Collaborator

rborn commented Jul 19, 2018

@Stophface any chance to fix this? I'll try to revert the merge

rborn added a commit that referenced this pull request Jul 19, 2018
rborn added a commit that referenced this pull request Jul 19, 2018
@rborn
Copy link
Collaborator

rborn commented Jul 19, 2018

Ok, looks like it worked.
@alvelig @h3ll0w0rld123 @zavadpe @alvelig @Stophface Maybe we could put some tests in place to avoid breaking things like now?

@Stophface
Copy link
Contributor Author

@rborn Not sure how to fix this. Did you remove the line?! I am positive that I did not touch any imports in AirMapManager.java.

I can add the import though if that helps...

@rborn
Copy link
Collaborator

rborn commented Jul 19, 2018

I didn't touch anything, just merged after @alvelig LGTM-ed (is that a word? 😹) the PR.
Would be good if you do this and maybe @stobis could test the PR before merging it.

@Stophface
Copy link
Contributor Author

@rborn haha yes, that definitly is a word ;)

I added the line and pushed it. Do I need to make a new PR?! Itis not showing here. Its online though: https://github.com/Stophface/react-native-maps/commit/e1296bb3b6ad975ecc5e453286edce2bc5180f06

@rborn
Copy link
Collaborator

rborn commented Jul 19, 2018

@Stophface I believe yes

@Stophface
Copy link
Contributor Author

@rborn @alvelig @stobis @zavadpe @h3ll0w0rld123 I opened a new PR #2388

timxyz pushed a commit to 3sidedcube/react-native-maps that referenced this pull request Aug 24, 2018
* master: (168 commits)
  Adding overlaying components details (react-native-maps#2425)
  docs: pin color limitations for android (react-native-maps#2429)
  Revert "Added MBTiles support for iOS and Android (react-native-maps#2208)" (react-native-maps#2387)
  Added MBTiles support for iOS and Android (react-native-maps#2208)
  Fix disabling the toolbar and my location button (react-native-maps#2317)
  Fixes warnings about self (react-native-maps#2341)
  Android: Fix lineCap of Polyline (react-native-maps#2375)
  Update installation.md (react-native-maps#2381)
  update doc (react-native-maps#2363)
  zIndex doesn't work when the map moves in iOS 11 (react-native-maps#2359)
  Fix readme formatting (react-native-maps#2358)
  add support for calloutAnchor with GoogleMaps on iOS; fixes react-native-maps#1852 (react-native-maps#2351)
  Added animateToNavigation method to MapView (react-native-maps#2049)
  Add react-native@^0.55 to peerDependencies (react-native-maps#2332)
  Fix custom marker updates on android react-native-maps#1611 react-native-maps#2048
  [iOS] Prefix or eliminate globals in AIRMapMarker (react-native-maps#2306)
  Fix CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings (react-native-maps#2154)
  Fix for compile error (react-native-maps#2215). (react-native-maps#2232)
  Make tiles display at the same physical size regardless of pixel dens… (react-native-maps#2248)
  Added support of lineDashPattern polyline prop to iOS Google Maps (react-native-maps#2243)
  ...

# Conflicts:
#	lib/components/MapMarker.js
madhums pushed a commit to madhums/react-native-maps that referenced this pull request Jan 23, 2020
markdgo pushed a commit to markdgo/react-native-maps that referenced this pull request Mar 15, 2021
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
MarcoAntonioAG pushed a commit to MarcoAntonioAG/React-map that referenced this pull request Mar 31, 2022
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
joshpeterson30489 added a commit to joshpeterson30489/maps-develop-with-react-native that referenced this pull request Sep 30, 2022
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
superstar1205 added a commit to superstar1205/Map-ReactNative that referenced this pull request Dec 26, 2022
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
johney6767 pushed a commit to johney6767/Map-ReactNative that referenced this pull request May 31, 2023
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
PainStaker0331 pushed a commit to PainStaker0331/react-native-maps that referenced this pull request Mar 3, 2024
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
Super-CodeKing added a commit to Super-CodeKing/react_native_map that referenced this pull request Apr 26, 2024
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
fairskyDev0201 pushed a commit to fairskyDev0201/react-native-maps that referenced this pull request Apr 29, 2024
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
DavidLee0501 added a commit to DavidLee0501/React-Native-Map that referenced this pull request Aug 12, 2024
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
PietroMorato pushed a commit to PietroMorato/mobile-map that referenced this pull request Feb 5, 2025
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
pinpong pushed a commit to pinpong/react-native-maps that referenced this pull request Feb 28, 2025
pereira534 pushed a commit to pereira534/reactnative-google-maps that referenced this pull request May 2, 2025
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
terry-mania added a commit to terry-mania/map-view that referenced this pull request Sep 26, 2025
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
Sunlight333 added a commit to Sunlight333/react-native-maps-sun that referenced this pull request Oct 1, 2025
* Added MBTiles support for iOS and Android

* Added changes regarding the comments of @h3ll0w0rld123 from here: react-native-maps/react-native-maps#2208 (comment)

* Added whitespaces

* Hotfix: Imported exceptions. Changed database.close()

* Hotfix: Removed the finally statemend. Resulted in always returning null

* Removed repetition of returns. Moved everything into finally statement instead

* Throwing exceptions

* Added MapView.MbTile to Readme.

Inclduded the component in the Readme

* Added example file

* Included more information in Readme

* Edited example file accodring to linter errors in Pull Request

* Edited index.d.ts according to merge conflicts in Pull Request. Had to change a few lines

* Edited example file according to linter errors in merge request

* Edited example file according to linter errors in merge request. I am starting not to like Travis...

* Edited example file according to linter errors in merge request. I am starting not to like Travis...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants