iOS getTile function throws incorrect Coordinate
See original GitHub issue#1565 で修正していただいたバージョンで検証を行ったところ、 iOS 端末では getTile: function(x, y, zoom)で設定する x, y に不正な値が指定されることを確認しています。 なお、Android 端末では正常な動作を確認しています。
ソースコードは以下になります。 プロジェクトは #1565 で共有したリポジトリ、 map_sample を更新しています。
var mapDiv = document.getElementById("map_canvas");
var map = plugin.google.maps.Map.getMap(mapDiv, {
'mapType' : plugin.google.maps.MapTypeId.NONE,
'preferences': {
'zoom': {
'minZoom': 15,
'maxZoom': 16
}
},
'camera': {
target: new plugin.google.maps.LatLng(33.734529, 134.535423),
zoom: 15
}
});
map.one(plugin.google.maps.event.MAP_READY, function() {
console.log("Map is ready!");
map.addTileOverlay({
getTile: function(x, y, zoom) {
console.log("./image/tiles/" + zoom + "/" + x + "/" + y + ".png");
return "./image/tiles/" + zoom + "/" + x + "/" + y + ".png";
}
}, function(tileOverlay) {
});
});`
iOS デバイス上で実行した際、getTile ファンクションのリターン直前に実行される console.log では、以下が出力されます。
./image/tiles/15/57256/26234.png
./image/tiles/15/57257/26234.png
./image/tiles/15/57257/26235.png
(省略)
plugin.google.maps.LatLng で指定した座標位置に合わせて以下の範囲が設定されることを想定していましたが、iOS 端末ではそのように動作しないようです。ご確認いただけないでしょうか。 ./image/tiles/15/28625~28634/13117~13122.png
- 利用環境
- Cordova version
- 6.2.0
- cordova-plugin-googlemaps
- 2.0.0-beta2-20170718-1602
- using Monaca
- Cordova version
また、16027a3 以降のコミットを Monaca からビルドするとエラーになってしまうため、最新のプラグインは適用できておりません。
これが意図しない変更によるものであった場合は、対応をご検討いただけたらと存じます。
Build log:
Start building 59719d72ff2af25702017c24
Setup working directories...
Download project archive...
Extract project archive...
Fetch project info...
cordova version: 6.2.0
- preBuild -
Change Xcode Version to 7
codesign: iPhone Developer: (削除)
provisioningPath: /tmp/monaca/59719d72ff2af25702017c24/output/etc/debugger.mobileprovision
Prepare keychain...
- Cordova create -
$ /data/build-server/cordova/6.2.0/bin/cordova create /tmp/monaca/59719d72ff2af25702017c24/project
Creating a new cordova project.
- Create build.json -
build.json {
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer: (削除)
"provisioningProfile": (削除)
}
}
}
- Copy config.xml -
- Copy external plugin setting files -
- Copy .monaca-res directory -
- Cordova platform add -
$ /data/build-server/cordova/6.2.0/bin/cordova platform add /data/build-server/cordova/platforms/ios/4.2.1
Adding ios project...
Creating Cordova project for the iOS platform:
Path: platforms/ios
Package: com.example.monaca1
Name: offline_map_sample
iOS project created with cordova-ios@4.2.1
- Copy www files -
- Cordova plugin add -
$ /data/build-server/cordova/6.2.0/bin/cordova plugin add mobi.monaca.plugins.Monaca
$ /data/build-server/cordova/6.2.0/bin/cordova plugin add cordova-plugin-whitelist@1.2.2
$ /data/build-server/cordova/6.2.0/bin/cordova plugin add cordova-plugin-splashscreen@3.2.2
$ /data/build-server/cordova/6.2.0/bin/cordova plugin add cordova-custom-config@2.0.3
$ /data/build-server/cordova/6.2.0/bin/cordova plugin add /tmp/monaca/59719d72ff2af25702017c24/output/plugins/cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID=AIzaSyARNicpApOfv7eEgTeomaIM_OBbKYQQTrI --variable API_KEY_FOR_IOS=AIzaSyAPN22DAi7oOGhexOFwV_YLQ3FzsTmd6Hw
$ /data/build-server/cordova/6.2.0/bin/cordova plugin add /Data/build-server/debugger/ios
- Cordova prepare -
$ /data/build-server/cordova/6.2.0/bin/cordova prepare ios
cordova-custom-config: Skipping auto-restore of config file backup(s)
cordova-custom-config: Applied custom config from config.xml to /private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/offline_map_sample.xcodeproj/project.pbxproj
cordova-custom-config: Applied custom config from config.xml to /private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/cordova/build.xcconfig
cordova-custom-config: Applied custom config from config.xml to /private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/offline_map_sample/offline_map_sample-Info.plist
The module "ConfigParser" has been factored into "cordova-common". Consider update your plugin hooks.
- Cordova compile -
$ /data/build-server/cordova/6.2.0/bin/cordova compile --debug --device
Reading build config file:
Building project: /private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/offline_map_sample.xcodeproj
Configuration: Debug
Platform: device
Build settings from command line:
CONFIGURATION_BUILD_DIR = /private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/build/device
SHARED_PRECOMPS_DIR = /private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/build/sharedpch
Build settings from configuration file '/private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/cordova/build-debug.xcconfig':
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CODE_SIGN_IDENTITY = iPhone Developer: (削除)
ENABLE_BITCODE = NO
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
IPHONEOS_DEPLOYMENT_TARGET = 8.0
OTHER_LDFLAGS = -ObjC
PROVISIONING_PROFILE =(削除)
SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
TARGETED_DEVICE_FAMILY = 1,2
=== BUILD TARGET CordovaLib OF PROJECT CordovaLib WITH CONFIGURATION Debug ===
Check dependencies
(中略)
- postBuild -
Remove working directories...
Build Error: Error: Sandbox Exec Error: [ ** BUILD FAILED **
The following build commands failed:
CompileC build/offline_map_sample.build/Debug-iphoneos/offline_map_sample.build/Objects-normal/armv7/PluginMarker.o offline_map_sample/Plugins/cordova-plugin-googlemaps/PluginMarker.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/cordova/build-debug.xcconfig,-project,offline_map_sample.xcodeproj,-target,offline_map_sample,-configuration,Debug,-destination,platform=iOS,build,CONFIGURATION_BUILD_DIR=/private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/private/tmp/monaca/59719d72ff2af25702017c24/project/platforms/ios/build/sharedpch
]
</details>
Issue Analytics
- State:
- Created 6 years ago
- Comments:21 (14 by maintainers)
Top Results From Across the Web
openlayers - forEachTileCoord() returning wrong y coordinate
I'm using this function to get all the coordinates in the tiles of my view, with my current zoom. I'm doing this way:...
Read more >Using metatables to remove strictness of tile retrieval
Using the __index metamethod, we can construct the stored tilemap data to avoid throwing an error for trying to retrieve nonexistent tiles ...
Read more >Is Tilemap.HasTile() only compatible with Vector3Int ... - Reddit
I need to check whether a tile exists at some coordinates, but converting from floating point to integer coordinates is throwing me off....
Read more >TileMap — Godot Engine (3.0) documentation in English
Default value: TILE_ORIGIN_TOP_LEFT. bool cell_y_sort - If true the TileMap's children will be drawn in order of their Y coordinate. Default value: false...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
ご期待に添えて良かったです。
プラグインのバグを検証したり、新しいデバイスに対応したりするのに色々と経費がかかります。 無理強いはしておりませんが、いつか自分に返ってくると思って応援していただけると幸いです。 よろしくお願いします。
修正後のプラグインを確認しました。全て問題なく、期待通りに動作しています。
また、情報もいただきありがとうございます。
はい。その対策として、初回起動時を含めたオンライン環境での起動時に opacity = 0.0 で addTileOverlay を実行することを考えていました。
動作確認の結果、全て期待通りに動作していますので、この Issue はクローズいたします。 tileSize の対応で iOS の x, y, zoom は正常に取得できるようになりましたので、Label の wontfix は外しても良いかと思います。
貧乏なもので出せても発泡酒程度・・・になりますが、検討させてくださいませ。
では、本当に色々とご対応いただき、ありがとうございました。 今後とも、よろしくお願いいたします。