1

我是 ESRI 的 JavaSCript API 的新手,它的易用性和速度给我留下了深刻的印象。作为交互式数据门户的一部分,我让用户输入纬度和经度作为十进制度作为空间查询的一部分,以返回州、县和 FIP。该部分工作得很好,但作为一个附加功能,我想在现有地图上绘制一个点图形,显示输入的坐标位置(DONE),然后以合理的比例居中并缩放到所述点。

centerAndZoom 方法在这里是合乎逻辑的选择,但它似乎不起作用。我的感觉是地图需要刷新,但我似乎无法弄清楚这一点。

我确定我在这里遗漏了一些基本的东西。在此先感谢您的时间!

function DrawPointAndZoom() {

    // Get currently entered lat/long.
    var lat = $('#SiteLatitude').attr('value');
    var long = $('#SiteLongitude').attr('value');

    var latLongPoint = new esri.geometry.Point(long, lat, new esri.SpatialReference({ wkid: 4326 }));

    //Draw point
    var symbol = new esri.symbol.SimpleMarkerSymbol().setSize(8).setColor(new dojo.Color([255, 0, 0]));
    var graphic = new esri.Graphic(latLongPoint, symbol);


    var infoTemplate1 = new esri.InfoTemplate();
    infoTemplate1.setTitle("point1");
    infoTemplate1.setContent("test point 1");

    graphic.setInfoTemplate(infoTemplate1);

    map.graphics.add(graphic);
    map.centerAndZoom(latLongPoint, 15);
}
4

2 回答 2

6

95% 的情况下,在 JS API 中无法使用 a 的任何事情Point都是由于空间参考错误。:)

检查您的地图的 SR ( map.spatialreference.wkid) 是否与点的 ( ) 相同4326,正如您在此处定义的那样。geographicToWebMercator如果地图使用其常用的 Web 墨卡托坐标系之一,您可能需要使用每个人都喜欢的函数。


使用托尼的评论/答案中的详细信息进行编辑:

var webMercPoint = esri.geometry.geographicToWebMercator(latLongPoint)
   {Missing code here}
map.centerAndZoom(webMercPoint, 15);
于 2014-01-15T00:04:00.633 回答
0

是的!感谢您花时间回复。我昨天去了那个洞,用 webMercatorPoint 试了一下……而且中提琴奏效了!

var webMercPoint = esri.geometry.geographicToWebMercator(latLongPoint)
   {Missing code here}
map.centerAndZoom(webMercPoint, 15);

非常感激!

于 2014-01-17T15:54:09.803 回答