Comments (7)
Nice work @naderio! Yeah, makes sense to keep it separate. I added a link to your module in the readme.
from nativescript-google-maps-sdk.
Hi @hirbod - would be a great feature. I currently don't have the time to work on it, but would welcome any pull requests if someone wants to pick it up.
from nativescript-google-maps-sdk.
Clustering guides: Android | iOS
from nativescript-google-maps-sdk.
I have this implemented in android, I'll see what I can do when I have time
in the mean time, check the code in question that covers marker cluster and heatmap
app.gradle
dependencies {
// ...
compile 'com.google.maps.android:android-maps-utils:0.4.+'
// ...
}
map.android.js
function setupMarkerCluster(mapView, markers, options) {
debug('setupMarkerCluster');
var mClusterManager = new ClusterManager(utils.ad.getApplicationContext(), mapView.gMap);
// var renderer = new DefaultClusterRenderer(utils.ad.getApplicationContext(), mapView.gMap, mClusterManager);
// renderer.onBeforeClusterItemRendered = function (item, markerOptions) {
// debug('onBeforeClusterItemRendered');
// markerOptions.alpha(0.8);
// markerOptions.flat(true);
// markerOptions.rotation(item.rotation);
// var icon = new Image();
// icon.imageSource = imageSource.fromResource('ic_marker_taxi');
// var androidIcon = com.google.android.gms.maps.model.BitmapDescriptorFactory.fromBitmap(icon.imageSource.android);
// markerOptions.icon(androidIcon);
// };
// mClusterManager.setRenderer(renderer);
mapView.gMap.setOnCameraChangeListener(mClusterManager);
markers.forEach(function (marker) {
mClusterManager.addItem(new ClusterItem({
rotation: marker.rotation,
getPosition: function () {
return new LatLng(marker.position[0], marker.position[1]);
}
}));
});
mClusterManager.cluster();
}
exports.setupMarkerCluster = setupMarkerCluster;
function setupHeatmap(mapView, markers, config) {
debug('setupHeatmap');
var list = new java.util.ArrayList();
markers.forEach(function (marker) {
list.add(new LatLng(marker.position[0], marker.position[1]));
});
if (config) {
config.mProvider.setData(list);
config.mOverlay.clearTileCache();
} else {
config = {};
config.mProvider = new HeatmapTileProvider.Builder()
.data(list)
.build();
config.mOverlay = mapView.gMap.addTileOverlay(new TileOverlayOptions().tileProvider(config.mProvider));
}
return config;
}
exports.setupHeatmap = setupHeatmap;
from nativescript-google-maps-sdk.
supporting marker cluster and other features require adding extra dependencies which is probably not a good idea to include them by default.
I took the liberty to implement this as separate module https://github.com/naderio/nativescript-google-maps-utils. It works only on Android for now.
from nativescript-google-maps-sdk.
Is the commented fragment of "DefaultClusterRenderer" correct? Because it doesn't throw me any error, but it also doesn't show any console.log
I put in onBeforeClusterItemRendered
function. So that function isn't called?
from nativescript-google-maps-sdk.
The cluster won't even initialize if I don't uncomment the commented part...
from nativescript-google-maps-sdk.
Related Issues (20)
- infoWindow open without a click event HOT 2
- Blank Map with Angular in Suspend/Resume Event HOT 1
- Angular Map not drawing Polylines HOT 6
- shape.loadPoints is not a function?
- Geo political features
- Nativescript 6.0 error maps arr HOT 16
- Conflicts with @triniwiz/nativescript-image-cache-it HOT 1
- Performance Angular? HOT 1
- NS8 infoWindowTemplate is not working HOT 1
- Gesture Handling Cooperative HOT 2
- Gradle 7 requires that compile be changed to implementation
- iOS + M1 - not works HOT 3
- Failed to build plugin nativescript-google-maps-sdk HOT 1
- How to set a pattern in a shape HOT 2
- Version of Google Map API HOT 2
- How to set a tag in shapes or markers HOT 1
- Adding GroundOverlays HOT 1
- Could not find method compile() for arguments [com.google.android.gms:play-services-maps:+] HOT 3
- Uncaught ReferenceError: NativeClass is not defined HOT 3
- Class constructor ActionItem cannot be invoked without 'new' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nativescript-google-maps-sdk.