- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个用户可以存储他们的映射样式的场景。当用户导航回带有 map 的那个页面时,它应该以以前的方式显示 map 。
用户可以更改地理和边界的颜色,也可以根据人口统计信息应用主题样式。
随着新的 loadGeoJson 的发布,我在加速我的应用程序方面取得了巨大的成功,最初我是通过 JS 自己绘制所有的地理位置。这导致了大约 1500 个地区的一些内存问题。这个新功能大大减少了它。我选择在服务器端生成 Features 对象,然后将 URL 传递给 map 进行渲染。此 URL 与所有其他样式信息一起传递,以重建 map ,就像以前一样。
我遇到的问题是,当我尝试应用样式时, map 尚未检索到要在 map 上显示的要素列表。
查看文档时,我没有看到任何专门针对 loadGeoJson 方法的事件,但确实看到了 addfeature 和 setgeometry,但是在使用 loadGeoJson 方法时这些事件都没有引发。
这一切都是用 Typescript 编写的,并试图遵守非常严格的 MVVM 方法,使用 Knockout 通过绑定(bind)为我处理所有 UI 更改。
我是否可以关联另一个事件来查看此方法何时完成,以便我可以适本地应用我的样式?
是否有另一种方法可以让我在某个地方“等待”烘烤? .
最佳答案
addfeature 事件肯定是由 loadGeoJson 调用的,如果不是您的设置错误。
loadGeoJson 有一个可选的回调参数,它在加载所有功能后调用,并将功能作为参数。
https://developers.google.com/maps/documentation/javascript/3.exp/reference
loadGeoJson(url:string, options?:Data.GeoJsonOptions, callback?:function(Array))
您可以从此回调中向您的代码发出信号,表明它可以继续处理。
map.data.loadGeoJson('google.json', null, function (features) {
map.fitBounds(bounds); // or do other stuff what requires all features loaded
});
您还可以将 loadGeoJson 包装到一个 promise 中,并在 loadGeoJson 的回调中解析该 promise 。
function loadGeoJson(url, options) {
var promise = new Promise(function (resolve, reject) {
try {
map.data.loadGeoJson(url, options, function (features) {
resolve(features);
});
} catch (e) {
reject(e);
}
});
return promise;
}
// Somewhere else in your code:
var promise = loadGeoJson('studs.json');
promise.then(function (features) {
// Do stuff
});
promise.catch(function (error) {
// Handle error
});
关于javascript - 如何确定 Google Maps loadGeoJson 何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071590/
我正在使用 .loadGeoJson 将 geojson 数据加载到 Google Maps API 实例中。我以前用过这个,但这次它没有加载任何数据,我不知道为什么。 我之前使用的代码是: var
我收到此错误: Uncaught TypeError: undefined is not a function 当我运行以下 JavaScript 代码时: function initialize(
我正在通过 JSON 将自定义坐标加载到我的 map 应用程序中。我已经能够了解如何根据要素属性对标记进行颜色编码,但我的下一步之一是创建过滤器以根据属性显示或隐藏标记。 我的代码是这样开始的: va
如果这是基本的,我很抱歉,但我的 javascript 知识非常有限。 我正在制作一张 map ,用于加载我在 ArcGIS 中创建的 GeoJSON 数据,这些数据使用 ogr2ogr 重新格式化为
我有这个 Google map 叠加文件。 叠加 - https://api.myjson.com/bins/ge7q4 function initAutocomplete() { v
我有一个用户可以存储他们的映射样式的场景。当用户导航回带有 map 的那个页面时,它应该以以前的方式显示 map 。 用户可以更改地理和边界的颜色,也可以根据人口统计信息应用主题样式。 随着新的 lo
尝试使用 loadGeoJson 和 MarkerClusterers 点击打开信息窗口。我使用下面的代码是因为我希望能够添加到信息窗口的链接。 https://codepen.io/cbrady97
我已使用以下命令成功在 Google Maps API v3 中加载并显示了一些多边形: map.data.loadGeoJson('../somename.geojson'); 现在我想为 map
我是一名优秀的程序员,十分优秀!