Java 如何在arcgis中添加用户纬度和经度值。?
我正在我的项目中使用ArcGIS Runtime SDK for Java。我需要为GPS跟踪添加纬度/经度值。我找不到执行此操作的解决方案。有一些示例代码可以执行此操作,但我认为它们使用的是CSV文件作为值 我找不到添加CSV文件路径或添加CSV文件的方法 示例代码:Java 如何在arcgis中添加用户纬度和经度值。?,java,arcgis,Java,Arcgis,我正在我的项目中使用ArcGIS Runtime SDK for Java。我需要为GPS跟踪添加纬度/经度值。我找不到执行此操作的解决方案。有一些示例代码可以执行此操作,但我认为它们使用的是CSV文件作为值 我找不到添加CSV文件路径或添加CSV文件的方法 示例代码: private static final String FSP = System.getProperty("file.separator"); private String getPathSampleData() {
private static final String FSP = System.getProperty("file.separator");
private String getPathSampleData() {
String dataPath = null;
String javaPath = ArcGISRuntime.getInstallDirectory();
if (javaPath != null) {
if (!(javaPath.endsWith("/") || javaPath.endsWith("\\"))) {
javaPath += FSP;
}
dataPath = javaPath + "sdk" + FSP + "samples" + FSP + "data" + FSP;
}
File dataFile = new File(dataPath);
if (!dataFile.exists()) {
dataPath = ".." + FSP + "data" + FSP;
}
return dataPath;
}
有谁能帮我解决我的问题吗?您提到了GPS和CSV,我将解释如何在ArcGIS运行时使用这两种工具 全球定位系统 使用该类在地图上显示位置流。有几个选项可用于使用
GPSLayer
:
BufferedReader
和StringTokenizer
将是我的朋友。)//map is of type JMap
map.addMapEventListener(new MapEventListenerAdapter() {
@Override
public void mapReady(MapEvent event) {
String layerDef = "{ \"geometryType\": \"esriGeometryPoint\", \"type\": \"Feature Layer\", \"typeIdField\": \"\", \"drawingInfo\": { \"renderer\": { \"type\": \"simple\", \"symbol\": { \"type\": \"esriSMS\", \"style\": \"esriSMSCircle\", \"color\": [200, 40, 0, 255], \"size\": 15, \"angle\": 0, \"xoffset\": 0, \"yoffset\": 0 } }, \"fixedSymbols\": true }, \"fields\": [ { \"name\": \"X\", \"alias\": \"X\", \"type\": \"esriFieldTypeDouble\", \"editable\": true, \"nullable\": true, \"domain\": null }, { \"name\": \"Y\", \"alias\": \"Y\", \"type\": \"esriFieldTypeDouble\", \"editable\": true, \"nullable\": true, \"domain\": null } ], \"name\": \"My CSV Layer\" }";
CSVLayer.CSVConfig csvConfig = new CSVLayer.CSVConfig();
csvConfig.url = new File("/path/to/csv-file.csv").toURI().toString();
csvConfig.columnDelimiter = ",";
csvConfig.longitudeField = "X";
csvConfig.latitudeField = "Y";
try {
final CSVLayer csvLayer = new CSVLayer(layerDef, csvConfig);
map.getLayers().add(csvLayer);
} catch (Exception ex) {
//Handle the exception
}
}
});
CSVLayer
,您确实需要这个JSON字符串。我使JSON字符串尽可能简单。如果经度和纬度的字段名不是X
和Y
,则需要对其进行调整。您可以看到和一个更详细的示例(,)
在我看来,选项2所需的JSON字符串使选项1成为更好的选择。解析CSV很容易;管理JSON字符串更难。您需要提供更多信息:问题到底是什么,您尝试了什么,示例代码不令人满意的原因等等您发布的示例代码是ArcGIS运行时SDK示例中返回SDK示例数据路径的方法。它不会帮助您将CSV添加到地图。