سؤال

لقد اتخذت صورة كبيرة وتقسيمها إلى البلاط المربعة (256x256). وهي مصنوعة من أجل خرائط Google أيضا، وبالتالي فإن الصورة بأكملها تنقسم إلى z_x_y.png (اعتمادا على مستوى التكبير / التصغير).

z = 0 => 1x1 tile z = 1 => 2x2 tilesthe z = 2 => البلاط 4x4

My ImageMap هي "مسطحة" ولا تعتمد على كرة مثل WorldMap.

سأجذب هذه الخريطة في تطبيق Windows Mobile (لا يوجد لديه أية جوجل API)، ويتم إدراج جميع "نقاط الاهتمامات" في قاعدة بيانات حسب الطول والخطوط. وبما أنني لا بد لي من جعل هذا لنظام التشغيل Windows Mobile، لدي فقط نظام تنسيق XY.

هل يكفي فقط استخدام هذا:

MAP_WIDTH  = 256*TILES_W;
MAP_HEIGHT = 256*TILES_H;

function convert(int lat, int lon)
{
    int y = (int)((-1 * lat) + 90) * (MAP_HEIGHT / 180);
    int x = (int)(lon + 180) * (MAP_WIDTH / 360);

    ImagePoint p = new ImagePoint(x,y);  // An object which holds the coordinates

    return p;
}

أو هل أحتاج إلى تقنية الإسقاط؟

شكرا لك مقدما. يرجى السؤال، إذا كان هناك شيء غير واضح.

هل كانت مفيدة؟

المحلول

إذا كنت ترغب في محاذاة نقاط اهتمامك بشكل صحيح على صورتك، فأنت بحاجة إلى التأكد من تطابق نظام الإسقاط والتنسيق المستخدمة في الصورة. يبدو أنك جعلت الصورة؟ من المفترض أن تعرف الإسقاط؟ فقط تأكد convert يستخدم نفس الإسقاط.

لست متأكدا مما إذا كان الأمر ذا صلة، ولكن تستخدم خرائط Google إسقاط مرائري كروي يعتمد على WGS84.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top