2016-09-22 1 views
0

как программируемый преобразовать точку с (X, Y) к (широта, долгота), учитывая, что X_left < X_point < X_right и Y_bottom < Y_point <Y_top (т.е. в пределах прямоугольной коробка).Convert X, Y координаты Lat, Lon GPS местоположение дал некоторые ориентиры

(X_left, Y_bottom) точка имеет (широта, долгота) уже, то же самое с другими 3 точек, конструирует прямоугольную форму (поэтажный план в данном случае)

Некоторые реальный мир данных:

"floor_name": "buildingName_floor_4", 

{ 
     "name": "GPS_Marker_0", 
     "GeoCoordinate": { 
     "latitude": 1.298825, 
     "longitude": 103.77004, 
     "unit": "DEGREES" 
     }, 
     "MapCoordinate": { 
     "x": 0, 
     "y": 0, 
     "unit": "FEET" 
     } 
    }, 
    { 
     "name": "GPS_Marker_1", 
     "GeoCoordinate": { 
     "latitude": 1.298825, 
     "longitude": 103.77134, 
     "unit": "DEGREES" 
     }, 
     "MapCoordinate": { 
     "x": 473.9, 
     "y": 0, 
     "unit": "FEET" 
     } 
    }, 
    { 
     "name": "GPS_Marker_2", 
     "GeoCoordinate": { 
     "latitude": 1.29694, 
     "longitude": 103.77134, 
     "unit": "DEGREES" 
     }, 
     "MapCoordinate": { 
     "x": 474.7, 
     "y": 683.8, 
     "unit": "FEET" 
     } 
    }, 
    { 
     "name": "GPS_Marker_3", 
     "GeoCoordinate": { 
     "latitude": 1.29694, 
     "longitude": 103.77004, 
     "unit": "DEGREES" 
     }, 
     "MapCoordinate": { 
     "x": 0, 
     "y": 683.8, 
     "unit": "FEET" 
     } 
    } 

Access Point (need to get lat,lon from its X,Y) 

"name": "AP_No_4", 
     "radioMacAddress": "xx:xx:xx:xx:xx:xx" 
     "MapCoordinate": { 
     "x": 179.8, 
     "y": 299, 
     "unit": "FEET" 
     }, 

Я понимаю, что мы, вероятно, нужно выяснить проекцию отображения перед применением каких-либо математику, но позвольте мне объяснить, что это прямоугольный ящик (т.е. план этажа), как правило, не столь велики поэтому некоторые ошибки (например, 1 метр или 2) принято.

Я предпочитаю код javascript, но если вы можете указать формулу для этого, я рад работать над кодом. Благодарю.

ответ

1

Я считаю, что в API JavaScript Maps есть способ для этого. После инициализации карты вы можете получить проекцию с помощью метода getProjection() класса карты:

https://developers.google.com/maps/documentation/javascript/3.exp/reference#Map

После этого вы можете использовать fromPointToLatLng (пиксель: точки, Nowrap: булево) метод проекции:

https://developers.google.com/maps/documentation/javascript/3.exp/reference#Projection

Существует статья в документации, которая объясняет различные типы координат:

https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordinates

Надеюсь, это поможет!

Смежные вопросы