Open BentakApps opened 1 year ago
I'm submitting a ... (check one with "x")
If you choose 'problem or bug report', please select OS: (check one with "x")
cordova information: (run $> cordova plugin list)
$> cordova plugin list
cordova-plugin-device 2.0.2 "Device" cordova-plugin-googlemaps 2.7.1 "cordova-plugin-googlemaps" cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard" cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview" cordova-plugin-splashscreen 6.0.2 "Splashscreen" cordova-plugin-statusbar 2.4.2 "StatusBar"
If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)
@ionic-native/google-maps
@ionic-native/core
"@ionic-native/core": "^5.36.0", "@ionic-native/google-maps": "^5.5.0",
Current behavior:
This code:
const map = GoogleMaps.create('map-canvas', { mapType: GoogleMapsMapTypeId.ROADMAP, camera: { target: { lat: -15.800739, lng: -47.861314 }, zoom: 15 } }); map.on(GoogleMapsEvent.MAP_READY).subscribe(()=>{ console.log(map.getVisibleRegion().toUrlValue()); });
produces this error:
ERROR TypeError: this.southwest.toUrlValue is not a function at LatLngBounds.toUrlValue (LatLngBounds.js:36:31) at SafeSubscriber._next (map.service.ts:131:42)
Expected behavior: Expected to get "[lat_sw,lng_sw,lat_ne,lng_ne]" on the terminal
Inspecting where the code fails:
LatLngBounds.prototype.toUrlValue = function (precision) { precision = precision || 6; return '[' + this.southwest.toUrlValue(precision) + ',' + this.northeast.toUrlValue(precision) + ']'; };
It seems that the function expects that this.southwest and this.northeast are of type LatLng which implements toUrlValue().
Howerver, VisibleRegion class defines both as ILatLng which does not implement toUrlValue().
Workaround: convert VisibleRegion.southwest and VisibleRegion.northeast to LatLng
const map = GoogleMaps.create('map-canvas', { mapType: GoogleMapsMapTypeId.ROADMAP, camera: { target: { lat: -15.800739, lng: -47.861314 }, zoom: 15 } }); map.on(GoogleMapsEvent.MAP_READY).subscribe(()=>{ const visibleRegion = map.getVisibleRegion(); //CONVERT SOUTHWEST AND NORTHEAST TO LATLNG const southwest = visibleRegion.southwest; const northeast = visibleRegion.northeast; visibleRegion.southwest = new LatLng(southwest.lat,southwest.lng); visibleRegion.northeast = new LatLng(northeast.lat,northeast.lng); console.log(visibleRegion.toUrlValue()); });
Result:
[-15.812301,-47.869897,-15.789176,-47.852731]
I'm submitting a ... (check one with "x")
If you choose 'problem or bug report', please select OS: (check one with "x")
cordova information: (run
$> cordova plugin list
)If you use
@ionic-native/google-maps
, please tell the package.json (only@ionic-native/core
and@ionic-native/google-maps
are fine mostly)Current behavior:
This code:
produces this error:
Expected behavior: Expected to get "[lat_sw,lng_sw,lat_ne,lng_ne]" on the terminal
Inspecting where the code fails:
It seems that the function expects that this.southwest and this.northeast are of type LatLng which implements toUrlValue().
Howerver, VisibleRegion class defines both as ILatLng which does not implement toUrlValue().
Workaround: convert VisibleRegion.southwest and VisibleRegion.northeast to LatLng
Result: