21

グーグルマップでジオメトリを使用するのに問題があります。次のエラーが発生します:「未定義またはnull参照のプロパティ'spherical'を取得できません。」

これは、私のいくつかの追加を加えたw3cからのいくつかのコードです。

var x=new google.maps.LatLng(52.395715,4.888916);
var stavanger=new google.maps.LatLng(58.983991,5.734863);
var amsterdam=new google.maps.LatLng(52.395715,4.888916);
var london=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
  center:x,
  zoom:4,
  mapTypeId:google.maps.MapTypeId.ROADMAP
};

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var myTrip=[stavanger,amsterdam,london];
var flightPath=new google.maps.Polyline({
    path:myTrip,
    strokeColor:"#0000FF",
    strokeOpacity:0.8,
    strokeWeight:2
    });
flightPath.setMap(map);

try{
    var markerpos = google.maps.geometry.spherical.interpolate(flightPath.getAt(0), flightPath.getAt(1), .5);
    // also tried //
    //var Spherical = google.maps.geometry.spherical;
    //var markerpos = Spherical.interpolate(flightPath.getAt(0), flightPath.getAt(1), .5);
    //var markerpos = google.maps.geometry.spherical.interpolate(amsterdam, london, .5);
}
catch(ex){alert(ex);}

var marker = new google.maps.Marker({position: markerpos,
    map: map,  clickable: false
});
}

上記のコードの何が問題になっていますか?

4

3 に答える 3

89

パラメータを使用して正しいライブラリをロードしていlibraries=ますか?

<script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=geometry"></script>
于 2013-03-05T14:24:10.033 に答える
1

を使用している場合は@googlemaps/js-api-loader、代わりにこのように含めてください

const loader = new Loader({
  apiKey: "xxxxxxxxxx",
  version: "weekly",
  libraries: ["geometry"], // additional libraries
});
于 2021-03-26T12:43:47.787 に答える
0

最初にライブラリモジュールをインポートし、次に認証キーモジュールをインポートする必要があります。ここで問題になるのは、ライブラリ関数の実行時にライブラリモジュールのインポートが完了していないことだと思います。最初に認証キーモジュールをインポートすると、ライブラリモジュールのロードが完了しないまでに、すぐにinitialize()メソッドが呼び出されます。したがって、最初にライブラリモジュールをインポートしてから、認証モジュールをインポートする必要があります。

于 2014-03-25T13:39:20.363 に答える