Skip to content

Commit 55db4c4

Browse files
author
masashiGMS
committed
Issue #856: Add uncompress parameter. (Android)
1 parent c20a0e1 commit 55db4c4

2 files changed

Lines changed: 33 additions & 14 deletions

File tree

src/android/plugin/google/maps/PluginMap.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -431,15 +431,25 @@ private void getCameraPosition(final JSONArray args, final CallbackContext callb
431431
*/
432432
@SuppressWarnings("unused")
433433
private void toDataURL(final JSONArray args, final CallbackContext callbackContext) throws JSONException {
434+
435+
JSONObject params = args.getJSONObject(1);
436+
boolean uncompress = false;
437+
if (params.has("uncompress")) {
438+
uncompress = params.getBoolean("uncompress");
439+
}
440+
final boolean finalUncompress = uncompress;
441+
442+
434443
this.map.snapshot(new GoogleMap.SnapshotReadyCallback() {
435444

436445
@Override
437446
public void onSnapshotReady(Bitmap image) {
438-
float density = Resources.getSystem().getDisplayMetrics().density;
439-
image = PluginUtil.resizeBitmap(image,
440-
(int)(image.getWidth() / density),
441-
(int)(image.getHeight() / density));
442-
447+
if (!finalUncompress) {
448+
float density = Resources.getSystem().getDisplayMetrics().density;
449+
image = PluginUtil.resizeBitmap(image,
450+
(int) (image.getWidth() / density),
451+
(int) (image.getHeight() / density));
452+
}
443453
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
444454
image.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
445455
byte[] byteArray = outputStream.toByteArray();

www/googlemaps-cdv-plugin.js

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ App.prototype.getMyLocation = function(params, success_callback, error_callback)
590590
success_callback = args[1];
591591
error_callback = args[2];
592592

593-
params.enableHighAccuracy = params.enableHighAccuracy || false;
593+
params.enableHighAccuracy = params.enableHighAccuracy === true;
594594
var self = this;
595595
var successHandler = function(location) {
596596
if (typeof success_callback === "function") {
@@ -768,13 +768,22 @@ App.prototype.isAvailable = function(callback) {
768768
}, PLUGIN_NAME, 'isAvailable', ['']);
769769
};
770770

771-
App.prototype.toDataURL = function(callback) {
771+
App.prototype.toDataURL = function(params, callback) {
772+
var args = [params || {}, callback];
773+
if (typeof args[0] === "function") {
774+
args.unshift({});
775+
}
776+
777+
params = args[0];
778+
callback = args[1];
779+
780+
params.uncompress = params.uncompress === true;
772781
var self = this;
773782
cordova.exec(function(image) {
774783
if (typeof callback === "function") {
775784
callback.call(self, image);
776785
}
777-
}, self.errorHandler, PLUGIN_NAME, 'exec', ['Map.toDataURL']);
786+
}, self.errorHandler, PLUGIN_NAME, 'exec', ['Map.toDataURL', self.deleteFromObject(params,'function')]);
778787
};
779788

780789
var _append_child = function(event) {
@@ -1011,12 +1020,12 @@ App.prototype.addMarker = function(markerOptions, callback) {
10111020
markerOptions.position.lat = markerOptions.position.lat || 0.0;
10121021
markerOptions.position.lng = markerOptions.position.lng || 0.0;
10131022
markerOptions.anchor = markerOptions.anchor || [0.5, 0.5];
1014-
markerOptions.draggable = markerOptions.draggable || false;
1023+
markerOptions.draggable = markerOptions.draggable === true;
10151024
markerOptions.icon = markerOptions.icon || undefined;
10161025
markerOptions.snippet = markerOptions.snippet || undefined;
10171026
markerOptions.title = markerOptions.title !== undefined ? String(markerOptions.title) : undefined;
10181027
markerOptions.visible = markerOptions.visible === undefined ? true : markerOptions.visible;
1019-
markerOptions.flat = markerOptions.flat || false;
1028+
markerOptions.flat = markerOptions.flat === true;
10201029
markerOptions.rotation = markerOptions.rotation || 0;
10211030
markerOptions.opacity = parseFloat("" + markerOptions.opacity, 10) || 1;
10221031
markerOptions.disableAutoPan = markerOptions.disableAutoPan === undefined ? false : markerOptions.disableAutoPan;
@@ -1088,7 +1097,7 @@ App.prototype.addPolyline = function(polylineOptions, callback) {
10881097
polylineOptions.width = polylineOptions.width || 10;
10891098
polylineOptions.visible = polylineOptions.visible === undefined ? true : polylineOptions.visible;
10901099
polylineOptions.zIndex = polylineOptions.zIndex || 4;
1091-
polylineOptions.geodesic = polylineOptions.geodesic || false;
1100+
polylineOptions.geodesic = polylineOptions.geodesic === true;
10921101

10931102
cordova.exec(function(result) {
10941103
var polyline = new Polyline(self, result.id, polylineOptions);
@@ -1114,7 +1123,7 @@ App.prototype.addPolygon = function(polygonOptions, callback) {
11141123
polygonOptions.strokeWidth = polygonOptions.strokeWidth || 10;
11151124
polygonOptions.visible = polygonOptions.visible === undefined ? true : polygonOptions.visible;
11161125
polygonOptions.zIndex = polygonOptions.zIndex || 2;
1117-
polygonOptions.geodesic = polygonOptions.geodesic || false;
1126+
polygonOptions.geodesic = polygonOptions.geodesic === true;
11181127
polygonOptions.addHole = polygonOptions.addHole || [];
11191128

11201129
cordova.exec(function(result) {
@@ -1188,7 +1197,7 @@ App.prototype.addKmlOverlay = function(kmlOverlayOptions, callback) {
11881197
var self = this;
11891198
kmlOverlayOptions = kmlOverlayOptions || {};
11901199
kmlOverlayOptions.url = kmlOverlayOptions.url || null;
1191-
kmlOverlayOptions.preserveViewport = kmlOverlayOptions.preserveViewport || false;
1200+
kmlOverlayOptions.preserveViewport = kmlOverlayOptions.preserveViewport === true;
11921201
kmlOverlayOptions.animation = kmlOverlayOptions.animation === undefined ? true : kmlOverlayOptions.animation;
11931202

11941203
var kmlId = "kml" + (Math.random() * 9999999);
@@ -1963,7 +1972,7 @@ var KmlOverlay = function(map, kmlOverlayId, kmlOverlayOptions) {
19631972
//self.set("visible", kmlOverlayOptions.visible === undefined ? true : kmlOverlayOptions.visible);
19641973
//self.set("zIndex", kmlOverlayOptions.zIndex || 0);
19651974
kmlOverlayOptions.animation = kmlOverlayOptions.animation === undefined ? true : kmlOverlayOptions.animation;
1966-
kmlOverlayOptions.preserveViewport = kmlOverlayOptions.preserveViewport || false;
1975+
kmlOverlayOptions.preserveViewport = kmlOverlayOptions.preserveViewport === true;
19671976
Object.defineProperty(self, "id", {
19681977
value: kmlOverlayId,
19691978
writable: false

0 commit comments

Comments
 (0)