proj4 javascript include/import from epsg.io
proj4 javascript include/import from epsg.io
我花了几个小时试图通过 http://epsg.io/2193.js 我的应用程序来包含返回的代码(见下文)。
proj4.defs("EPSG:2193","+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
如果我复制粘贴上面的代码,它可以正常工作,但我需要动态创建 URL,并希望使用以下内容包含此代码:-
var url = 'http://epsg.io/2193.js';
require([url]);
我总是收到 proj4 未定义的错误(url 的第 1 行),因此它指向范围问题。这是在道场小部件中(如果相关)。我引用的是//cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4.js
中的proj4
我在这里错过了什么?
你是如何加载proj4js
的?
如果您使用的是AMD风格,则需要像这样包装它:
require([
"//cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4.js"
], function(proj4) {
var url = 'http://epsg.io/2193.js';
window.proj4 = proj4; // add to global scope
require([url], function() {
// now you can use proj4 with NZTM loaded in this block.
);
});
这对我来说似乎有点神奇,因为您希望proj4
永远是正确的名称,并且您将proj4
添加到全局范围中,这有点不干净。我倾向于将.proj4
扩展与dojo/text
AMD插件一起使用:
require([
"//cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4.js"
"dojo/text!http://epsg.io/2193.proj4"
], function(proj4, epsg2193) {
proj4.defs(epsg2193);
// now you can use proj4 with NZTM loaded.
});
这意味着您可以同时加载这两个资源。
不幸的是,看起来响应上缺少Access-Control-Allow-Origin
标头会破坏这种方法,但是如果您需要性能,可以考虑通过自己的域代理它。
顺便说一句,您可以通过定义一个假proj
对象在第一个选项上作弊:
var Proj4Proxy = function() {
this._defs = [];
}
Proj4Proxy.prototype.defs = function(crs) { this._defs.push(crs); };
var proj4 = new Proj4Proxy();
require([
"dojo/_base/array",
"//cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4.js",
"//epsg.io/2193.js"
], function(array, _proj4) {
array.forEach(proj4._defs, function(crs) { _proj4.defs(crs); });
proj4 = _proj4;
// now you can use proj4 with NZTM loaded.
});
两全其美,如果你不介意冗长的话。
相关文章:
- Validate JSON from Mongo?
- Get JSON from an url
- creating objects from variables ES6
- getting id from jsp
- jquery使用name from变量按类选择元素
- Using jQuery with classes from ES6
- 如何计算与php中的CRC32函数兼容的arrayBuffer(javascript中的From FileReader)
- 如何删除'被按压'state from复选框
- 当我的所有 Ng-from 都有效时启用一个按钮
- getDocument by id/get input text from button dons'不起作用
- Calling VB.Net from Javascript
- Blob from DataURL?
- PDF Generation from DOM?
- AWSELB Cookie access from Javascript
- 转换类似数组的对象Array.prototype.slice或Array.from
- fetch data from db using javascript & php
- 在Stripe Checkout from表单中预先填充电子邮件
- 如何从表单变量对象中获取特定的from属性
- 返回List<字符串>Jquery中的from JSON调用具有未定义的长度
- proj4 javascript include/import from epsg.io