次のコードは、場所のピクセルとタイルの座標を計算するためのものです。256px のタイルを使用すると問題なく動作します。しかし、512px のタイル ワールドを使用し、ピクセル座標は正常に動作しますが、タイル座標は変更されず、これは不可能です。
256 ピクセルのタイル サイズ
Chicago, IL
LatLng: (41.85, -87.64999999999998)
Zoom level: 15
World Coordinate: (65.67111111111113, 95.17492654697409)
Pixel Coordinate: (2151910, 3118691)
Tile Coordinate: (8405, 12182) <-------- SAME ----------------
512 ピクセルのタイル サイズ
Chicago, IL
LatLng: (41.85, -87.64999999999998)
Zoom level: 15
World Coordinate: (131.34222222222226, 190.34985309394818)
Pixel Coordinate: (4303821, 6237383)
Tile Coordinate: (8405, 12182) <--------- SAME ---------------
これは、タイル座標を計算するコードです
var tileCoordinate = new google.maps.Point(
Math.floor(worldCoordinate.x * scale / TILE_SIZE),
Math.floor(worldCoordinate.y * scale / TILE_SIZE));
私はそれを変更しようとしましたが、座標がタイルの端に近い場合、タイルの座標が間違っている可能性があると思います(隣のタイルのように)。分割と丸めが多すぎるためかもしれません。
var tileCoordinate = new google.maps.Point(
Math.floor(worldCoordinate.x * scale / (TILE_SIZE * (TILE_SIZE / 256))),
Math.floor(worldCoordinate.y * scale / (TILE_SIZE * (TILE_SIZE / 256))));
誰でもこの問題を抱えていて、解決策を知っていますか?
https://developers.google.com/maps/documentation/javascript/examples/map-coordinates