0
Thumbsup

いい質問だ

1

Thumbsdown

うーん

MapViewでスタイル付き地図を実現したい

a.matsui
a.matsui 10

投稿日:2013-07-01 22:25:09

お世話になります。

現在とあるアプリを作っているのですが、マップの色を変更したいという要望がありました。
以下のような感じで、モノクロにカスタマイズしたいのです。
https://developers.google.com/maps/documentation/javascript/examples/map-options-styling-iframe

ですが、残念ながら Ti.Map や Modules.Map のAPIドキュメントを見てもそれらしき項目はなく、困っています。
WebView + Google Map API V3 も試してみましたが、重いのとズームがうまくできないのとで難がありました。

どうしても実現させたいのですが、何かいい案はないでしょうか?
皆様のお知恵をお借りしたいです。
よろしくお願いします。

(条件)
Titanium SDK 3.1.0 GA + Alloy
Android >= 2.3
iOS ( iPhone Only ) >= 5



回答

uchidak
uchidak
80

Thumbsup

いい回答

2

Thumbsdown

うーん



Titaniumと関係の無い次元になってしまいますが、iOSでカスタムMKMapView使うならroute-meやMapBox、という回答や、質問者様の言うようにWebViewを使ったハイブリッドアプリにする方法があるみたいです。
http://stackoverflow.com/questions/9362411/display-blackwhite-mapkit

なんとか強引にやる場合、思いついたアイデアはMapViewを一旦toImage()で画像出力してtimoduleでモノクロフィルターをかぶせてから表示するなど。
setInterval 100msで上記処理をやってみたところiOS simulatorでは、なんとかいけそうな雰囲気でした。(実験結果→https://dl.dropboxusercontent.com/u/15255563/iOS%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013.07.02%201.22.45.png)

画像加工フィルタモジュールは探してないので分かりませんが、もし無ければiOS向けには今僕が作りかけてるのがありますのでリクエストあれば公開します。


toImage()で変換しながら処理とは……全く思いつきませんでした。目からウロコです! わざわざ実験までしていただいて、ありがとうございます! ただ、こちらも残念ながらアノテーションの色まで変わってしまいますね…… WebViewで何とか頑張ってみようと思います。 ありがとうございました! --- a.matsui

mogya
mogya
140

Thumbsup

いい回答

1

Thumbsdown

うーん



iOS SDKでも駄目といわれてるので、Styled Mapそのものは厳しそうですね。
http://stackoverflow.com/questions/15088836/possible-to-style-google-maps-sdk-for-ios

PolygonsならiOS SDKでサポートされているので、カスタムモジュールを作って、半透過色で塗りつぶしたPolygonsを載せたら似たようなことができるかも、というような話題が下記に出ていました。
http://developer.appcelerator.com/question/39111/does-titanium-support-drawing-overlays-on-native-map-view


追記。 いろいろな案が出てくるのは楽しいのですけど、GoogleMapsの上に他のviewをかぶせたり、画面キャプチャしてあれこれするアプリは、rejectされるリスクがあります。 http://blog.ku-suke.jp/entry/20100918 「8.6」のあたりの話題で触れられていますね。実際ぼくも、GoogleMapsに半透明のツールバーをかぶせるデザインで提出してrejectされたことがあります。 すっごいがんばって実現して最後にrejectされると泣くに泣けないので、その辺もご注意くださいませ。 --- mogya

やっぱり厳しいんですね……今回はAndroidもあるので、モジュール作って~というのはちょっと厳しそうです。 そしてiOSのリジェクトの件、恥ずかしながら初めて知りました。嫌ですねそれ…… WebViewで再度検討してみようと思います。 ありがとうございました! --- a.matsui

atticatticattic
atticatticattic
60

Thumbsup

いい回答

1

Thumbsdown

うーん



mogyaさんの解答が最良かと思います

ただ、手軽に雰囲気を変えるだけならば、マップの上に半透明なViewを重ねるという方法もありかと思います。


ありがとうございます! 半透明ビュー作戦は検討したのですが、アノテーションの色まで変わってしまうんですよね…… --- a.matsui

ログインすると回答することができます。