たくさんのサポート フォーラムがあることは知っていますが、私が探している答えを持っている人は誰もいないようです。したがって、詳細には、以下が私のシナリオです (私は ionic フレームで開発しています)。
現在の場所を取得するために ngCordova cordova-plugin-geolocation を使用しています (これは正常に機能します)。
function initialize(){
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation.getCurrentPosition(posOptions)
.then(function(pos){
var lat=pos.coords.latitude;
var lng=pos.coords.longitude;
var myLatlng = new google.maps.LatLng(lat,lng);
initMap(myLatlng);
}, function(err){
});}
上記のコードで、vars lat,lng に正しい値が設定されていることを確認しました。それで、次にやりたいことは、Google マップを表示するようにレンダリングすることです。以下のinitMap関数を使用して行います。
function initMap(origin){
var mapOptions = {
center: origin,
zoom: 16,
};
$scope.map=new google.maps.Map(document.getElementById("map"),mapOptions);}
この画像をレンダリングしようとすると、空白の画面しか表示されません。また、「ionic.Platform.ready(initialize);」があります。私のコントローラーコードで。
注: 以下は、HTML テンプレートのコード セグメントです。
<div id="map" ng-controller="MapCtrl">
</div>
失敗したコーディングの試みには次のものがあります。
- ionic.Platform.ready とは対照的に ng-init() を使用 - 同じ空の画像
- すべてを機能から外します (必死の試み) - 同じ空白の画像
次の場合に成功します。
initialize() 関数にネストされている「getCurrentPosition」操作を完全にバイパスして、latlong Google オブジェクトでinitMapを直接呼び出します。
任意の推奨事項は本当に高く評価されます。