JXMapViewer 소스 (link to github)의 기본 예제를 사용하여 대신 소스를 수정하여 wms 서버에서 타일을로드합니다. 그러나, Tilefactory는 URL이 정확하게 형성되었음을 나타내는 테스트에도 불구하고 올바르게 타일을로드하지 않습니다.JXMapViewer를 사용하는 WMS 레이어가로드되지 않습니다.
TileFactoryInfo info = new WMSTileFactoryInfo(0, 10, 11, "https://mesonet.agron.iastate.edu/cgi-bin/wms/us/mrms.cgi", "mrms_p48h");
DefaultTileFactory tileFactory = new DefaultTileFactory(info);
mapViewer.setTileFactory(tileFactory);
테스트 낳는 웹 브라우저에로드 할 수있는 정확하게 형성하는 URL :
제 타일//Test: Created URLs work. 10 = max zoom
System.out.println(info.getTileUrl(0, 0, 10));
System.out.println(info.getTileUrl(0, 1, 9));
System.out.println(info.getTileUrl(1, 1, 9));
유일한 수정 부분이있다
그러나, 내가 간단한 JFrame (코드는 다른 중심 위치 인 Des Moins를 제외한 예제에서 변경되지 않았습니다. whi ch는 OSM에서 작동 함), 타일이로드되지 않습니다. 그래서 실수는 서버 응답입니다
import javax.swing.JFrame;
import org.jxmapviewer.viewer.DefaultTileFactory;
import org.jxmapviewer.viewer.GeoPosition;
import org.jxmapviewer.JXMapViewer;
import org.jxmapviewer.WMSTileFactoryInfo;
import org.jxmapviewer.viewer.TileFactoryInfo;
public class WMSTest {
public static void main(String[] args) {
JXMapViewer mapViewer = new JXMapViewer();
// Create a TileFactoryInfo for WMS
//WMSTileFactoryInfo int minZoom, int maxZoom, int totalMapZoom, java.lang.String baseURL, java.lang.String layers)
TileFactoryInfo info = new WMSTileFactoryInfo(0, 10, 11, "https://mesonet.agron.iastate.edu/cgi-bin/wms/us/mrms.cgi", "mrms_p48h");
//Test: Do created URLs work? 10 = max zoom, 9 = 1 level lower -> OK.
System.out.println(info.getTileUrl(0, 0, 10));
System.out.println(info.getTileUrl(0, 1, 9));
System.out.println(info.getTileUrl(1, 1, 9));
DefaultTileFactory tileFactory = new DefaultTileFactory(info);
mapViewer.setTileFactory(tileFactory);
// Create a TileFactoryInfo for OpenStreetMap
//TileFactoryInfo info2 = new OSMTileFactoryInfo();
//DefaultTileFactory tileFactory2 = new DefaultTileFactory(info2);
//mapViewer.setTileFactory(tileFactory2);
// Use 8 threads in parallel to load the tiles
tileFactory.setThreadPoolSize(8);
// Set the focus
GeoPosition desMoines = new GeoPosition(41.590833, -93.620833);
mapViewer.setZoom(9);
mapViewer.setAddressLocation(desMoines);
// Display the viewer in a JFrame
JFrame frame = new JFrame("JXMapviewer2 Example 1");
frame.getContentPane().add(mapViewer);
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}