arcgis.js 已知图片中心点和图片两个角的经纬度,如何在地图上把图片展示出来
时间: 2024-11-25 09:13:00 浏览: 5
在ArcGIS JavaScript API中,如果你想将一张图片按照给定的中心点和两个角落的经纬度显示在地图上,你可以通过创建一个`MapView`并设置视图的`initialViewpoint`来实现。首先,你需要计算出图片的边界范围(左下角和右上角的地理坐标),然后设置视图的视野包含这个范围。
以下是大致的步骤:
1. **获取图片中心点坐标**:
- 使用给定的中心点经纬度作为视图的中心(`x`, `y`)坐标。
2. **计算图片边界**:
- 确定图片的宽度、高度,然后转换成经度差和纬度差。
- 根据这两个角的经纬度,确定左下角和右上角的经纬度。
3. **构造视图范围**:
- 创建一个新的`esri.Viewing.MapPoint`对象,表示左下角和右上角的坐标。
- 创建一个`esri.geometry.Extent`对象,用上述的两点来初始化它。
4. **设置视图**:
- 初始化一个`MapView`实例,并设置它的初始视图范围(`initialViewpoint`)为上面计算得到的`Extent`。
```javascript
// 假设已知中心点中心点坐标 (centerLon, centerLat),以及两个角落经纬度 (corner1Lon, corner1Lat) 和 (corner2Lon, corner2Lat)
var center = new esri.geometry.Point(centerLon, centerLat);
var corner1 = new esri.geometry.Point(corner1Lon, corner1Lat);
var corner2 = new esri.geometry.Point(corner2Lon, corner2Lat);
// 计算图片边界
var widthInMeters = ...; // 图片宽度(单位:米)
var heightInMeters = ...; // 图片高度(单位:米)
var west = center.x - widthInMeters / 2;
var east = center.x + widthInMeters / 2;
var south = center.y - heightInMeters / 2;
var north = center.y + heightInMeters / 2;
var extent = new esri.geometry.Extent(west, south, east, north, 'wkid:102100');
// 初始化MapView
var mapView = new esri.View({
container: "mapDiv", // 你的HTML元素ID
map: yourMap, // 你的地图实例
initialViewpoint: {
extent: extent,
scale: 10000 // 设置合适的缩放比例
}
});
```
请记得替换`yourMap`和`mapDiv`为实际的地图实例和容器元素。
阅读全文