2017-11-06 12 views
0

キリル文字の名前は地図上のいくつかの場所に表示されていますが、地図上には英語/ラテンの名前だけが必要ですが、ローカル名のみが表示されることもあります。これをどのように実装できますか? P.S .:私はこの問題をベラルーシと、一部はロシアの場所に見出しました。一般的な言語についてCarto Servicesのローカル名ではなく、いくつかの場所でラテン語の名前を有効にするにはどうすればいいですか?

Screenshot

答えて

0

:結局のところ、それは特定の地名がでタグ付けされた言語に依存します。 OpenStreetMapはローカルの主言語では常に「ローカル」バリアントを持ち、CARTO Mobile SDKではこれがデフォルトで使用されますが、データには他の言語もあるため、次のように制御できます。

CartoVectorTileLayerCartoOnlineVectorTileLayerCartoOfflineVectorTileLayerの両方がそれのサブクラスです)言語を選択するための方法setLanguage(String)を持っている、例えばので:

layer.setLanguage("en"); 

はあなたの英語のマップを提供します。 SDK 4.0.2 SDKとあなたが言語次使用することができますnutiteq.osmタイルソースで

:ローカル/デフォルト、EN、ES、DE、FR、それ、RU、ZH(中国)、TR(トルコ)とet(エストニア語)言語として

最新のCARTO SDK 4.1.0および新しいcarto.streetsソースでは、任意のOSM言語を使用できます。

// Android 
layer.setLanguage(Locale.getDefault().getLanguage()); 

// iOs/Xamarin 
layer.Language = Foundation.NSLocale.PreferredLanguages[0].Substring(0, 2); 

特定の名前が特定の言語で使用できない場合はどうすればよいですか?その後、MapViewはデフォルトで 'ローカル'言語にフォールバックされ、マップは空になりません。しかし、 'ローカル'言語がまだ読めない場合、私はラテンのアルファベット名を好むでしょうか? SDK 4.1.0では、プライマリとセカンダリのフォールバック言語を設定できます。ドイツ語の初級言語を「de」に設定し、奇妙なアルファベット(ヘブライ語、ギリシア語、ほとんどのアジア語)を避けるために、「en」を主なフォールバックに設定します。

layer.FallbackLanguage = "en"; 

は今、私はあなたが自動的に音訳/ Romanizied名をしたい知っているので、OpenStreetMapのからのソースデータは、例えば持っている場合でも:ローカルは、両方のプライマリと英語名が欠落している場合にのみ使用されますキリル文字のみ(ロシア語、ベラルーシ語など)の名前は、ラテン文字で表示されます。これは翻訳とまったく同じではありません。モスクワはローマ字化されたモスクワになるだろうが、多くの場合、特にアジア(中国語など)からのラテン語でないスクリプトを使って、実際に役に立つかもしれない。ここで問題となるのは、ロシア語を含む多くの言語では多くの競合するローマ字規則があるため、たとえそうしたいとしても、一般的なSDKマップのレンダリングレベルではできません。私たちのCARTO SDKはあなたの好みの変換テーブルを適用するためのAPIをアプリケーションに提供するかもしれませんが、私たちはこれを持っていません。 SDKはオープンソースであり、この機能のパッチを提供することは歓迎します。私はこの問題のプロジェクトを追加しました:https://github.com/CartoDB/mobile-sdk/issues/147

関連する問題