위도/경도로 정의 된 일부 위치를지도 (이미지)의 x, y 좌표에 투사 할 수있는 함수를 작성해야합니다.lambert 2008 투영
지도 자체가 투영 유형으로 "벨기에 램버트"를 사용하는 것으로 보입니다.
이 프로젝션 및 구성에 대한 공식 정보가 있습니다 (http://ign.be/FR/FR2-1-4.shtm 및 http://ign.be/Common/Lambert2008/Transformation_Geographic_Lambert_FR.pdf). 필요한 경우 프랑스어로 번역합니다.
기본적으로 일부 라이브러리를 사용하는 것이 더 쉬울 것이라는 결론이 나왔습니다 (여기에서는 필수 사항은 아니지만). 몇 가지 조사를 한 후에 OpenMap이 작업을 수행 할 수 있어야합니다. http://openmap.bbn.com/doc/api/com/bbn/openmap/proj/LambertConformal.html#LambertConformal%28com.bbn.openmap.LatLonPoint,%20float,%20int,%20int,%20double,%20double,%20double,%20double,%20double,%20double,%20com.bbn.openmap.proj.Ellipsoid%29
내가 구성하지 않은 것 같아요 :
private Point mapCoordinatesToPoint(LatLonPoint latLonPoint) {
LatLonPoint centerLatLonPoint = new LatLonPoint(50.797815, 4.3592158333333333333333333333333);
Proj proj = new LambertConformal(centerLatLonPoint, 1, 1000, 1000, 4.3592158333333333333333333333333, 49.833333333333333333333333333333, 51.166666666666666666666666666667, 50.797815, 649328.0, 665262.0, Ellipsoid.GRS_1980);
return proj.forward(latLonPoint);
}
이 LamberConformal 생성자
의 JavaDoc (내 지프가 1000x1000 인 것을 알고) : 그래서, 여기에
는 내가 지금까지 무엇을 가지고 있습니다 그것은 맞습니다 : xxx에있는지도상의 어떤 점은 다음 결과를 제공합니다 :x=-1766051.0; y=-1.6355546E7;
매개 변수로 "중심점"을 (?)주기
는
사람이 잘 알고, 또는 링크에서 구성을 알 수
x=500.0; y=500.0;
(확인을 보이는지도의 가운데를) 제공?
편집 :
이와 방법에서 마지막 줄을 교체 시도 :
return proj.forward(latLonPoint.getLatitude(), latLonPoint.getLongitude(), new Point(), false);
하지만 더 나은.