내 안드로이드 앱에는 위성지도 기반의 이미지 인 간단한 "지도"가 있습니다. 이지도의 두 구석에 정확한 LatLng
위치가 있습니다. 정확하게 보려면 왼쪽 상단과 오른쪽 하단. 자, 주어진 LatLng
지점에 의해 작은보기를 추가하려면지도 (마커)에 추가하십시오. 이를 위해서는 필자의 "지도"에서 픽셀의 백분율 x와 y를 계산해야합니다. 다른 두 지점 사이의 포인트 x와 y의 백분율을 알아보십시오
LatLng MAP_LEFT_TOP; //constant point
LatLng MAP_RIGHT_BOTTOM; //constant point
LatLng location; //point, which should be inside map rectangle
:
float percentageX; //percentage x position of "location" on the map
float percentageY; //percentage y position of "location" on the map
여기
내가 찾은 기능 :
LatLng interpolate(LatLng from, LatLng to, double fraction)
및나는 반대의 방식으로 작동하는 무언가가 필요합니다. 여기 내 구현은, 그러나 그것은 나에게 올바른 결과 (Y/경도에 대해 동일) 제공하지 않습니다
float imageViewWidth; //width of the imageView holding map
float imageViewHeight; //height of the imageView holding map
float x = percentageX * imageViewWidth;
float y = percentageY * imageViewHeight;
편집 :
double findFractionX(double latitudeLeftTop, double latitudeRightBottom, double latitude){
return (latitude - latitudeLeftTop)/(latitudeRightBottom - latitudeLeftTop);
}
가 그럼 난 이렇게 마커의 최종 위치를 얻을 수 있습니다 : 내 실수는 위도를 사용하여 y를 얻는 x와 경도를 얻는 것과 정반대입니다.
아직도 뭔가 여기 잘못이 응용 프로그램에서 보이는 방법은 다음과 같습니다
: 그것은이었다 (나는이 예제를 만들기 위해 낙서를 사용)해야 어디
이야 그냥 "1.1"이라는 포인트를 말하고, 다른 사람들에게주의를 기울이지 말고, 이미지 자체에 하드 코딩되어 있습니다.
findFractionX 기능 사용 방법을 추가하십시오. 제대로 사용하면 나에게 잘 보일 것입니다. 지금 당장 아이디어 만 나오면 어쩌면 long/lat와 x/y를 바꿀 수 있을까요? 편집 : 그 long = x, lat = y 추가해야합니다. – Squirrelkiller
findFractionX 호출에 대한 호출이 어떻게 생겼는지 알고 싶습니다.편집 : 그리고 어디에서 MAP_LEFT_TOP 및 MAP_RIGHT_BOTTOM 얻을. – Squirrelkiller