Javascript Esri和OneMap的空间参考

Javascript Esri和OneMap的空间参考,javascript,dojo,maps,Javascript,Dojo,Maps,基本上,我正在尝试执行搜索,从搜索结果中,我缩放到特定的地图级别并显示确切的位置。这是我的html: <div id='top-bar'> <table> <tr> <td style='width:90%;'><input placeholder='Enter An Address' id='search-box' type='text'/></td>

基本上,我正在尝试执行搜索,从搜索结果中,我缩放到特定的地图级别并显示确切的位置。这是我的html:

<div id='top-bar'>
        <table>
            <tr>
                <td style='width:90%;'><input placeholder='Enter An Address' id='search-box' type='text'/></td>
                <td id='search-button'><img id='search-icon' src='img/search.png' width='20' height='20' onClick='GetSearchData()'/></td>
            </tr>
        </table>
        <div id='searchResults'></div>
    </div>

我不会在评论中发布代码,所以下面是我上面提到的示例

require([
   "esri/map", "esri/geometry/Point", "esri/SpatialReference",
   "esri/symbols/SimpleMarkerSymbol", "esri/Graphic", ... 
    ], function(Map, Point, SpatialReference, SimpleMarkerSymbol, Graphic, ... ) {
    });

    var map = new Map( ... );
    map.on("load", function() { ShowLocation(-81.3765, 28.54175); });

 function ShowLocation(x, y) {
   var point = new Point(x, y, new SpatialReference({wkid:4326}));
   var simpleMarkerSymbol = new SimpleMarkerSymbol();
   var graphic = new Graphic(point, simpleMarkerSymbol);

   map.graphics.add(graphic);
 };
此外,您在定义地图时似乎出现了错误。如果您没有将变量定义为全局变量,那么必须在开始处有一个var,并且“newmap”而不是map

 var map = new Map("map-canvas",...
更新

定义地图时是否设置了空间参照

比如:

var spatialRef = new SpatialReference({wkid:yourSpatialReferenceHere});
 map = new Map("map", {
                    extent: Extent,
                    spatialReference:spatialRef,
                    lods:lods,
                    logo: false,
                    autoResize:true,
                    sliderStyle: "large",
                    displayGraphicsOnPan: false
                });

这应该可以解决不同引用的问题。

在调用
ZoomTo
函数时,如果已经定义了
map
,您是否尝试过?@DaKirsche是的,我想我在init()中定义了map?您应该尝试一下。将
if(!map | |!map.showLocation | | typeof(map.showLocation)!='function'){alert('map is undefined');return;}
添加到您的
ZoomTo
函数中并尝试一下。@DaKirsche我想知道这是因为地图空间参照问题吗?并且它不在执行ZoomToall@DaKirsche你能看到我为ZoomTo()编辑的部分吗?你有空时能帮我看看这个线程吗?因为我认为zoomToSegment()与空间引用中的差异有相同的问题
 var map = new Map("map-canvas",...
var spatialRef = new SpatialReference({wkid:yourSpatialReferenceHere});
 map = new Map("map", {
                    extent: Extent,
                    spatialReference:spatialRef,
                    lods:lods,
                    logo: false,
                    autoResize:true,
                    sliderStyle: "large",
                    displayGraphicsOnPan: false
                });