-
Notifications
You must be signed in to change notification settings - Fork 917
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't use markers functions with clustering #1706
Comments
Did you try to replace .then() by .subscribe() ? Change marker.one(GoogleMapsEvent.INFO_CLICK).then(() => {
console.log('info-click')
}); To marker.one(GoogleMapsEvent.INFO_CLICK).subscribe(() => {
console.log('info-click')
}); |
Hello @Flo-D I doesn't work that way, check the source code of ionic-native: One works with promises: On works with promises: The matter is that I can't access any method from the marker when it's being created from the MarkerCluster. |------------------------------------------| Also there's another problem, usually you would do: Since you'd be iterating over an object, create the markers inside a loop and set any data if needed, now we pass an array of markers, and we must find another way to append data to those makers, or identify them, have to think on it. |
Did you try to reinstall the @ ionic-native / core and @ ionic-native google-maps plugins? |
Hey, sorry for the delay... Indeed, I reinstall the whole project and keeps happening. I'll try now on iOS. |
@ZiFFeL1992 Please share your project files on github (or others). |
I can see both objects so that's not the issue. I'll share a demo with you tomorrow. |
Ok, I will wait. |
Hi guys, now that this issue is closed, I got the same error as @ZiFFeL1992 I've updated my repo : https://github.com/Flo-D/test-google-maps-cluster |
His issue was solved already. |
@ZiFFeL1992 If you don't want to share any information (your project files, or demo project), I will close this thread, because there is no enough information. |
What I mean is that after he fixed his error passing multiple arguments, he now has the same issue that I have, and as he said, he has updated the repo so you can reproduce my error in his repository. Creating a demo by the way... |
Here you have: Is based on @Flo-D code since it reproduces this issue, you have two branches, they do the same, one has ionic-native (master) and the other one (no-native) works fine because it doesn't use the wrapper so might be something related with the ionic-native wrapper. Let me know if I can help, |
This is the problem of In order to solve this problem, I implemented the In order to solve this problem perfectly, the |
@ZiFFeL1992 and @Flo-D The marker instance is the JS instance, not the That's why you need to write like this: markerCluster.on(GoogleMapsEvent.MARKER_CLICK).subscribe((params) => {
let latLng: LatLng = params[0];
let marker: any = params[1];
console.log(params);
console.log(latLng);
console.log(marker);
marker.setAnimation(GoogleMapsAnimation.BOUNCE);
marker.one(GoogleMapsEvent.INFO_CLICK, function() {
console.log('info click');
});
}); |
Ok, I sent a PR. |
Sorry, after the discussion with the ionic team, I don't support the |
Luckily, the fundraising is reached to the end quickly, I restart to support the again. |
* Update index.ts * Update index.ts * Add missing features, and bug fix of methods * update: classname must be in pascal case * remove: duplicated class definition * export encode and spherical static classes * Add comma * Fix Encoding and Spherical * Add convenience methods * Fix decorators for Encoding and Spherical * Update: getMap() methods return the instance of the wrapper plugin * Update: getMap() methods return the instance of the wrapper plugin * Remove `@CordovaInstance` decorators from getMap() * Update: GoogleMapOptions (all fields are not optional). * Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps * Fix: tslint error * Fix: tslint error * No more isAvailable() method. * Bug fix: description is incorrect * Bug fix: example code was wrong. * Bug fix: HtmlInfoWindow does not work #1815 (comment) * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * It seems the ionViewDidLoad() is enough delayed after platform.ready() * Bug fix: map.setDiv() * Bug fix: HtmlInfoWindow does not work * Bug fix: BaseArrayClass definition is incorrect * Bug fix: BaseArrayClass constructor is wrong * Bug fix: Geocoder class does not work * Bug fix: LatLngBounds constructor is wrong * update: noNotify option is not declared * Bug fix: Geocoder.geocode() returns array of GeocoderResult * Update: clarify acceptable parameters of BaseArrayClass * Add: AnimateCameraOption.padding is missing * Revert: BaseClass.empty() method does not have the noNotify option * Add `destruct` option to the CordovaOption. - This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister. * A semicolon is mixing * update: event names * Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one() * Add: destruct option for otherPromise Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher) * Build for working group * Bug fix: map.getCameraTarget() definition is incorrect * Bug fix: The definition of VisibleRegion interface is incorrect * Fix: LatLng, LatLngBounds, and PolylineOptions classes Update: map.getVisibleRegion() Add: VisibleRegion class * Bug fix: the definition of map.clear() method is incorrect * Fix: map.fromLatLngToPoint() * Ignore the dist directory on the master branch * Remove the dist folder on the master branch * fixes and tweaks * use union types for CameraPosition fixes issue mentioned on slack by @wf9a5m75 * fix types * update AnimateCameraOptions interface * remove AnimateCameraOptions interface * add MarkerCluster class * Bug fix: Can not create an instance of BaseArrayClass * Bug fix: the icons property of MarkerClusterOptions * Bug fix: the zoom option is missing mapsplugin/cordova-plugin-googlemaps#1712 * Update index.ts * fix: need to convert instance type from the JS class to the wrapper class mapsplugin/cordova-plugin-googlemaps#1706 * remove test file * fix: Error: Illegal use of "@Private" tag. * fix: The Environment, Encode, and Spherical are static class * fix: convert JS instance to the ionic instance add: BaseClass.destroy() add: getId() method for all instance classes
The PR is merged, and published as @ionic-native/google-maps ver 4.3.0. |
Hey @wf9a5m75 Sorry but I didn't have so much time to test it, just copied your snniped from: #1706 (comment) As you can see I'm getting the LatLng property but Marker seems to be undefined. I reinstalled all the plugins, platform and npm modules, also I'm in 4.3.0 of ionic-native.... Thanks for supporting Ionic again! |
You guys also have to update the maps plugin |
As I said in my previous comment, I reinstalled all dependencies to latests versions before reporting again.
|
Unfortunately, you still have to wait the next update. Because the PR implementation was changed after I sent the PR first time. As the author of this plugin, I recommend you use this plugin without the |
I sent another PR. |
* Update index.ts * Update index.ts * Add missing features, and bug fix of methods * update: classname must be in pascal case * remove: duplicated class definition * export encode and spherical static classes * Add comma * Fix Encoding and Spherical * Add convenience methods * Fix decorators for Encoding and Spherical * Update: getMap() methods return the instance of the wrapper plugin * Update: getMap() methods return the instance of the wrapper plugin * Remove `@CordovaInstance` decorators from getMap() * Update: GoogleMapOptions (all fields are not optional). * Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps * Fix: tslint error * Fix: tslint error * No more isAvailable() method. * Bug fix: description is incorrect * Bug fix: example code was wrong. * Bug fix: HtmlInfoWindow does not work #1815 (comment) * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * It seems the ionViewDidLoad() is enough delayed after platform.ready() * Bug fix: map.setDiv() * Bug fix: HtmlInfoWindow does not work * Bug fix: BaseArrayClass definition is incorrect * Bug fix: BaseArrayClass constructor is wrong * Bug fix: Geocoder class does not work * Bug fix: LatLngBounds constructor is wrong * update: noNotify option is not declared * Bug fix: Geocoder.geocode() returns array of GeocoderResult * Update: clarify acceptable parameters of BaseArrayClass * Add: AnimateCameraOption.padding is missing * Revert: BaseClass.empty() method does not have the noNotify option * Add `destruct` option to the CordovaOption. - This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister. * A semicolon is mixing * update: event names * Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one() * Add: destruct option for otherPromise Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher) * Build for working group * Bug fix: map.getCameraTarget() definition is incorrect * Bug fix: The definition of VisibleRegion interface is incorrect * Fix: LatLng, LatLngBounds, and PolylineOptions classes Update: map.getVisibleRegion() Add: VisibleRegion class * Bug fix: the definition of map.clear() method is incorrect * Fix: map.fromLatLngToPoint() * Ignore the dist directory on the master branch * Remove the dist folder on the master branch * fixes and tweaks * use union types for CameraPosition fixes issue mentioned on slack by @wf9a5m75 * fix types * update AnimateCameraOptions interface * remove AnimateCameraOptions interface * add MarkerCluster class * Bug fix: Can not create an instance of BaseArrayClass * Bug fix: the icons property of MarkerClusterOptions * Bug fix: the zoom option is missing mapsplugin/cordova-plugin-googlemaps#1712 * Update index.ts * fix: need to convert instance type from the JS class to the wrapper class mapsplugin/cordova-plugin-googlemaps#1706 * remove test file * fix: Error: Illegal use of "@Private" tag. * fix: The Environment, Encode, and Spherical are static class * fix: convert JS instance to the ionic instance add: BaseClass.destroy() add: getId() method for all instance classes * Documentation Error #1994 * Need to create another way to convert the instance for marker cluster * save * Remove the instance of wrapper class if the JS instance is removed.
|
* Update index.ts * Update index.ts * Add missing features, and bug fix of methods * update: classname must be in pascal case * remove: duplicated class definition * export encode and spherical static classes * Add comma * Fix Encoding and Spherical * Add convenience methods * Fix decorators for Encoding and Spherical * Update: getMap() methods return the instance of the wrapper plugin * Update: getMap() methods return the instance of the wrapper plugin * Remove `@CordovaInstance` decorators from getMap() * Update: GoogleMapOptions (all fields are not optional). * Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps * Fix: tslint error * Fix: tslint error * No more isAvailable() method. * Bug fix: description is incorrect * Bug fix: example code was wrong. * Bug fix: HtmlInfoWindow does not work #1815 (comment) * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * It seems the ionViewDidLoad() is enough delayed after platform.ready() * Bug fix: map.setDiv() * Bug fix: HtmlInfoWindow does not work * Bug fix: BaseArrayClass definition is incorrect * Bug fix: BaseArrayClass constructor is wrong * Bug fix: Geocoder class does not work * Bug fix: LatLngBounds constructor is wrong * update: noNotify option is not declared * Bug fix: Geocoder.geocode() returns array of GeocoderResult * Update: clarify acceptable parameters of BaseArrayClass * Add: AnimateCameraOption.padding is missing * Revert: BaseClass.empty() method does not have the noNotify option * Add `destruct` option to the CordovaOption. - This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister. * A semicolon is mixing * update: event names * Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one() * Add: destruct option for otherPromise Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher) * Build for working group * Bug fix: map.getCameraTarget() definition is incorrect * Bug fix: The definition of VisibleRegion interface is incorrect * Fix: LatLng, LatLngBounds, and PolylineOptions classes Update: map.getVisibleRegion() Add: VisibleRegion class * Bug fix: the definition of map.clear() method is incorrect * Fix: map.fromLatLngToPoint() * Ignore the dist directory on the master branch * Remove the dist folder on the master branch * fixes and tweaks * use union types for CameraPosition fixes issue mentioned on slack by @wf9a5m75 * fix types * update AnimateCameraOptions interface * remove AnimateCameraOptions interface * add MarkerCluster class * Bug fix: Can not create an instance of BaseArrayClass * Bug fix: the icons property of MarkerClusterOptions * Bug fix: the zoom option is missing mapsplugin/cordova-plugin-googlemaps#1712 * Update index.ts * fix: need to convert instance type from the JS class to the wrapper class mapsplugin/cordova-plugin-googlemaps#1706 * remove test file * fix: Error: Illegal use of "@Private" tag. * fix: The Environment, Encode, and Spherical are static class * fix: convert JS instance to the ionic instance add: BaseClass.destroy() add: getId() method for all instance classes * Documentation Error #1994 * Need to create another way to convert the instance for marker cluster * save * Remove the instance of wrapper class if the JS instance is removed. * Bug fix: HtmlInfoWindow missing .on and .one methods #2034 * Bug fix: HtmlInfoWindow constructor cause the error mapsplugin/cordova-plugin-googlemaps#1661 * Fix: Error when removing map mapsplugin/cordova-plugin-googlemaps#1823 * Add: the cssOptions argument for HtmlInfoWindow.setContent() method * Bug fix: Polyline.getPoints(), Polygon.getPoints() and Polygon.getHoles() Those methods need to create new instance of BaseArrayClass of wrapper plugin. * Add: forEachAsync(), mapAsync(), and filterAsync() methods into BaseArray class * update: use document.querySelector() instead of document.getElementById() if the passed element is string update: map.setDiv() Bug fix: can not create empty GoogleMap (pure JS version is available way) * Fix: wait until the page is fully ready * Fix: missing `clickable` option for PolygonOptions and PolylineOptions
…#2093) * Update index.ts * Update index.ts * Add missing features, and bug fix of methods * update: classname must be in pascal case * remove: duplicated class definition * export encode and spherical static classes * Add comma * Fix Encoding and Spherical * Add convenience methods * Fix decorators for Encoding and Spherical * Update: getMap() methods return the instance of the wrapper plugin * Update: getMap() methods return the instance of the wrapper plugin * Remove `@CordovaInstance` decorators from getMap() * Update: GoogleMapOptions (all fields are not optional). * Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps * Fix: tslint error * Fix: tslint error * No more isAvailable() method. * Bug fix: description is incorrect * Bug fix: example code was wrong. * Bug fix: HtmlInfoWindow does not work #1815 (comment) * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * It seems the ionViewDidLoad() is enough delayed after platform.ready() * Bug fix: map.setDiv() * Bug fix: HtmlInfoWindow does not work * Bug fix: BaseArrayClass definition is incorrect * Bug fix: BaseArrayClass constructor is wrong * Bug fix: Geocoder class does not work * Bug fix: LatLngBounds constructor is wrong * update: noNotify option is not declared * Bug fix: Geocoder.geocode() returns array of GeocoderResult * Update: clarify acceptable parameters of BaseArrayClass * Add: AnimateCameraOption.padding is missing * Revert: BaseClass.empty() method does not have the noNotify option * Add `destruct` option to the CordovaOption. - This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister. * A semicolon is mixing * update: event names * Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one() * Add: destruct option for otherPromise Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher) * Build for working group * Bug fix: map.getCameraTarget() definition is incorrect * Bug fix: The definition of VisibleRegion interface is incorrect * Fix: LatLng, LatLngBounds, and PolylineOptions classes Update: map.getVisibleRegion() Add: VisibleRegion class * Bug fix: the definition of map.clear() method is incorrect * Fix: map.fromLatLngToPoint() * Ignore the dist directory on the master branch * Remove the dist folder on the master branch * fixes and tweaks * use union types for CameraPosition fixes issue mentioned on slack by @wf9a5m75 * fix types * update AnimateCameraOptions interface * remove AnimateCameraOptions interface * add MarkerCluster class * Bug fix: Can not create an instance of BaseArrayClass * Bug fix: the icons property of MarkerClusterOptions * Bug fix: the zoom option is missing mapsplugin/cordova-plugin-googlemaps#1712 * Update index.ts * fix: need to convert instance type from the JS class to the wrapper class mapsplugin/cordova-plugin-googlemaps#1706 * remove test file * fix: Error: Illegal use of "@Private" tag. * fix: The Environment, Encode, and Spherical are static class * fix: convert JS instance to the ionic instance add: BaseClass.destroy() add: getId() method for all instance classes * Documentation Error #1994 * Need to create another way to convert the instance for marker cluster * save * Remove the instance of wrapper class if the JS instance is removed. * Bug fix: HtmlInfoWindow missing .on and .one methods #2034 * Bug fix: HtmlInfoWindow constructor cause the error mapsplugin/cordova-plugin-googlemaps#1661 * Fix: Error when removing map mapsplugin/cordova-plugin-googlemaps#1823 * Add: the cssOptions argument for HtmlInfoWindow.setContent() method * Bug fix: Polyline.getPoints(), Polygon.getPoints() and Polygon.getHoles() Those methods need to create new instance of BaseArrayClass of wrapper plugin. * Add: forEachAsync(), mapAsync(), and filterAsync() methods into BaseArray class * update: use document.querySelector() instead of document.getElementById() if the passed element is string update: map.setDiv() Bug fix: can not create empty GoogleMap (pure JS version is available way) * Fix: wait until the page is fully ready * Fix: missing `clickable` option for PolygonOptions and PolylineOptions * Add: accept own properties for `addMarker()` and others #2087 Fix: some properties are required, but specified as optional. Add: descriptions for properties * Bug fix: Static classes are defined as non static class https://stackoverflow.com/questions/47083289/ionic-native-google-maps-plugin-set-app-background-color/47165721#47165721 * Add: poly class (plugin.google.maps.geometory.poly namespace)
* Update index.ts * Update index.ts * Add missing features, and bug fix of methods * update: classname must be in pascal case * remove: duplicated class definition * export encode and spherical static classes * Add comma * Fix Encoding and Spherical * Add convenience methods * Fix decorators for Encoding and Spherical * Update: getMap() methods return the instance of the wrapper plugin * Update: getMap() methods return the instance of the wrapper plugin * Remove `@CordovaInstance` decorators from getMap() * Update: GoogleMapOptions (all fields are not optional). * Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps * Fix: tslint error * Fix: tslint error * No more isAvailable() method. * Bug fix: description is incorrect * Bug fix: example code was wrong. * Bug fix: HtmlInfoWindow does not work #1815 (comment) * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * Bug fix: HtmlInfoWindow does not work * It seems the ionViewDidLoad() is enough delayed after platform.ready() * Bug fix: map.setDiv() * Bug fix: HtmlInfoWindow does not work * Bug fix: BaseArrayClass definition is incorrect * Bug fix: BaseArrayClass constructor is wrong * Bug fix: Geocoder class does not work * Bug fix: LatLngBounds constructor is wrong * update: noNotify option is not declared * Bug fix: Geocoder.geocode() returns array of GeocoderResult * Update: clarify acceptable parameters of BaseArrayClass * Add: AnimateCameraOption.padding is missing * Revert: BaseClass.empty() method does not have the noNotify option * Add `destruct` option to the CordovaOption. - This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister. * A semicolon is mixing * update: event names * Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one() * Add: destruct option for otherPromise Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher) * Build for working group * Bug fix: map.getCameraTarget() definition is incorrect * Bug fix: The definition of VisibleRegion interface is incorrect * Fix: LatLng, LatLngBounds, and PolylineOptions classes Update: map.getVisibleRegion() Add: VisibleRegion class * Bug fix: the definition of map.clear() method is incorrect * Fix: map.fromLatLngToPoint() * Ignore the dist directory on the master branch * Remove the dist folder on the master branch * fixes and tweaks * use union types for CameraPosition fixes issue mentioned on slack by @wf9a5m75 * fix types * update AnimateCameraOptions interface * remove AnimateCameraOptions interface * add MarkerCluster class * Bug fix: Can not create an instance of BaseArrayClass * Bug fix: the icons property of MarkerClusterOptions * Bug fix: the zoom option is missing mapsplugin/cordova-plugin-googlemaps#1712 * Update index.ts * fix: need to convert instance type from the JS class to the wrapper class mapsplugin/cordova-plugin-googlemaps#1706 * remove test file * fix: Error: Illegal use of "@Private" tag. * fix: The Environment, Encode, and Spherical are static class * fix: convert JS instance to the ionic instance add: BaseClass.destroy() add: getId() method for all instance classes * Documentation Error #1994 * Need to create another way to convert the instance for marker cluster * save * Remove the instance of wrapper class if the JS instance is removed. * Bug fix: HtmlInfoWindow missing .on and .one methods #2034 * Bug fix: HtmlInfoWindow constructor cause the error mapsplugin/cordova-plugin-googlemaps#1661 * Fix: Error when removing map mapsplugin/cordova-plugin-googlemaps#1823 * Add: the cssOptions argument for HtmlInfoWindow.setContent() method * Bug fix: Polyline.getPoints(), Polygon.getPoints() and Polygon.getHoles() Those methods need to create new instance of BaseArrayClass of wrapper plugin. * Add: forEachAsync(), mapAsync(), and filterAsync() methods into BaseArray class * update: use document.querySelector() instead of document.getElementById() if the passed element is string update: map.setDiv() Bug fix: can not create empty GoogleMap (pure JS version is available way) * Fix: wait until the page is fully ready * Fix: missing `clickable` option for PolygonOptions and PolylineOptions * Add: accept own properties for `addMarker()` and others #2087 Fix: some properties are required, but specified as optional. Add: descriptions for properties * Bug fix: Static classes are defined as non static class https://stackoverflow.com/questions/47083289/ionic-native-google-maps-plugin-set-app-background-color/47165721#47165721 * Add: poly class (plugin.google.maps.geometory.poly namespace) * Bug fix: Ionic native googlemaps decodePath() returns undefined https://forum.ionicframework.com/t/ionic-native-googlemaps-decodepath-returns-undefined/118624/ * PR #2254 #2254 * PR #2199 #2199 * Change defined event names for the cordova-plugin-googlemaps v2.0 * Change defined event names for the cordova-plugin-googlemaps v2.2.0 * Add Geolocation class * Implement the `setMyLocationButtonEnabled()` method * add: baseArrayClass.mapSeries() method update: change internal methods * update: implementation of the LocationService * Implement the map.addKmlOverlay() method * Update for the cordova-plugin-googlemaps v2.2.x
I'm submitting a ... (check one with "x")
[ ] question
[ x ] any problem or bug report
[ ] feature request
The plugin version: (check one with "x")
[ ] 1.4.x
[ x ] 2.0.0-beta3
If you choose 'problem or bug report', please select OS: (check one with "x")
[ x ] Android
[ ] iOS
cordova information: (run
$> cordova plugin list
)Current behavior:
When adding the marker cluster, clicking on a markers causes:
Uncaught TypeError: marker.one(...).then is not a function
Expected behavior:
Should be able to use a marker like I would without clustering.
Steps to reproduce:
Create a map with clustering & do something on infoWindow click.
If I remove
marker.one(...)
it works, but how can I handle infoWindow click?Screen capture or video record:
(I know this is not the error since the InfoWindow opens automatically, but it's the same kind of error)
Related code, data or error log (please format your code or data):
The text was updated successfully, but these errors were encountered: