Javascript Esri和OneMap的空间参考
基本上,我正在尝试执行搜索,从搜索结果中,我缩放到特定的地图级别并显示确切的位置。这是我的html: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>
<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
});