Saya terjebak menambahkan titik vektor di lat / lon di atas lapisan Google di OpenLayers. Intinya bergerak ketika saya menggeser peta. Ini tidak terjadi jika saya mengganti lapisan Google dengan lapisan di WGS84. Bagaimana saya bisa memperbaikinya?
map = new OpenLayers.Map('map');
map.addControl(new OpenLayers.Control.LayerSwitcher());
var gmap = new OpenLayers.Layer.Google(
"Google Streets",
{numZoomLevels: 20}
);
var pointLayer = new OpenLayers.Layer.Vector("Point Layer");
map.addLayers([gmap,pointLayer]);
map.setCenter(new OpenLayers.LonLat(16.373056, 48.208333), 5);
var point = new OpenLayers.Geometry.Point(16.373056, 48.208333);
var pointFeature = new OpenLayers.Feature.Vector(point,null,null);
pointLayer.addFeatures([pointFeature]);
Saya sudah mencoba mengikuti http://docs.openlayers.org/library/spherical_mercator.html tetapi tidak berhasil.
openlayers-2
javascript
underdark
sumber
sumber
Jawaban:
Anda perlu menambahkan beberapa perubahan untuk mendapatkan hasil yang diperlukan:
Kode kerja di bawah ini:
sumber
Ini adalah masalah proyeksi, Anda harus mengubah proyeksi titik menjadi lapisan dasar (google map di sini). Kode berikut harus berfungsi
Ini karena proyeksi default google map (spherical mercator) adalah 900913 dan titik sederhana di lonlat pada 4326.
Harap pastikan bahwa titik ditetapkan sebagai (bujur, lintang) dan bukan sebagai (lintang, bujur).
sumber
Saat Anda bekerja dengan Google Maps JS API, Anda harus berhati-hati pada versi. Ada default untuk pergi dengan versi pengembangan API Google JS Maps. Periksa halaman: http://code.google.com/apis/maps/documentation/javascript/basics.html#Versioning
Dan tim Google Maps JS memperbaiki bug juga. Periksa http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog
Di masa depan, sebutkan versi Google Maps API dalam pertanyaan. v3.3 tidak memiliki masalah dengan Openlayers karena sebagian besar digunakan oleh pengembang.
sumber
Saya pikir ini masalah proyeksi.
Sudahkah Anda mencoba melaporkan titik pusat dari titik ketika peta bisa? Anda mungkin dapat melihat apakah ada perubahan.
Tapi dari apa yang saya lihat kode yuor, Anda akan menambahkan titik WGS84 ke corordsys yang berbeda
sumber