SORU
16 NİSAN 2010, Cuma


Uzun/lat verilen bir resim üzerinde y/x piksel dönüştürmek

Moskova şehir haritası var. Bazı sanatsal öğeleri ile Google Maps bir görüntü sağladık, ama GPS koordinatları arasındaki ilişki ve piksel aynı kalır.

Sorun:Nasıl GPS çeşitli veri noktaları koordinatları dönüştürmek biz görüntü koordinatları içine piksel var mı?

İdeal Javascript ile bunu yapabilirim, ama PHP çok iyi olabilirdi.


Biliyorum, küçük ölçeklerde (örneğin şehir ölçekler) bunu yapmak için yeterli (gerekli öğrenmek coğrafi koordinatları olan bir resim köşeleri, sonra Öğren "fiyat" piksel coğrafi koordinatlar üzerinde bir resim eksenleri OX ve OY ayrı ayrı).

Ama büyük ölçeklerde (ülke ölçeği) "bir piksel için değil, aynı zamanda olacak, ve yeterince güçlü bir şekilde değişir" ve yukarıda anlatılan yöntem uygulanamaz. fiyat

Nasıl ülke ölçeklerde bir sorunu çözmek için?


Güncelleme:

API Google Maps kullanmıyorum, sadece var: coğrafi nesnenin koordinatları (google Haritalar), ben yine de basit bir resim * sitemde de var. hangi çizmek zorundayım gif, bir noktaya karşılık gelen coğrafi koordinatları.

CEVAP
22 NİSAN 2010, PERŞEMBE


Bu işin anahtarı map projections anlamaktır. Diğerleri belirttiği gibi, bozulma nedeni (ya da daha doğru elips) küresel dünyanın bir düzleme yansıtılır olmasıdır.

Hedefe ulaşmak için, önce verileri hakkında iki şeyi bilmesi gerekir:

  1. Projeksiyon haritaları vardır. Eğer sadece Google Maps, sonra da elde edilmektedir, eğer şansı spherical Mercator projection kullanıyorlar.
  2. Coğrafi koordinat sistemi enlem/boylam koordinatları kullanarak. Bu dünya üzerinde enlem/uzun-bulma farklı yolları vardır, çünkü değişebilir. En yaygın GKS, GPS için en web-haritalama uygulamaları ve kullanılan, WGS84.

Veri koordinat sistemleri bu olduğunu varsayıyorum.

Küresel Mercator projeksiyon metre uzaklıkta, çift, Dünya'nın yüzeyi için koordinat tanımlar. Bu, her lat uzun koordinat//metre koordinat eşleşen bir metre olduğu anlamına gelir. Bu, aşağıdaki yordamı kullanarak, dönüştürme yapmak için sağlar

  1. Görüntünün köşeleri uzun/WGS84 lat bulabilirsiniz.
  2. Küresel Mercator projeksiyon/longs lat YKS dönüştürmek. Orada dışarıda dönüştürme araçları, en sevdiğim PROJ4 project bir parçası olduğunu cs2cs aracını kullanmaktır.
  3. Güvenli bir şekilde küresel Mercator projeksiyon görüntü ve puan yeryüzündeki puan arasında dönüştürmek için basit bir lineer dönüşüm ve tekrar geriye.

Görüntüde bir piksel için WGS84 bir noktadan itibaren devam etmek için, prosedürü:

  1. Proje enlem/küresel Mercator için lon. Bu işi proj4js library. kullanılarak yapılabilir
  2. Küresel Mercator görüntü piksel koordinat doğrusal ilişki yukarıda keşfetti kullanarak koordinat dönüşümü.

Bu proj4js bu kütüphane kullanabilirsiniz:

// include the library
<script src="lib/proj4js-combined.js"></script>  //adjust the path for your server
                                                 //or else use the compressed version
// creating source and destination Proj4js objects
// once initialized, these may be re-used as often as needed
var source = new Proj4js.Proj('EPSG:4326');    //source coordinates will be in Longitude/Latitude, WGS84
var dest = new Proj4js.Proj('EPSG:3785');     //destination coordinates in meters, global spherical mercators projection, see http://spatialreference.org/ref/epsg/3785/


// transforming point coordinates
var p = new Proj4js.Point(-76.0,45.0);   //any object will do as long as it has 'x' and 'y' properties
Proj4js.transform(source, dest, p);      //do the transformation.  x and y are modified in place

//p.x and p.y are now EPSG:3785 in meters

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010
  • Tire Rack

    Tire Rack

    31 Mayıs 2007