ionic-team / ionic-team/ionic-native-google-maps

VisibleRegion.toUrlValue() return error

Offen
#376 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
215
Forks
119
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**I'm submitting a ...** (check one with "x")
- [ ] question
- [X] any problem or bug report
- [ ] feature request

**If you choose 'problem or bug report', please select OS:** (check one with "x")
- [ ] **Android**
- [ ] **iOS**
- [X] **Browser**

**cordova information:** (run `$> 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/core": "^5.36.0",
"@ionic-native/google-maps": "^5.5.0",
```

**Current behavior:**

This code:
```typescript
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:
```typescript
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
```typescript
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]
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.