我必须在 Leaflet 应用程序上加载 KML 图层。经过一番浏览后,我发现一个名为 leaflet-kml 的库可以执行此操作。我可以通过两种方式加载 KML 图层:通过 KML 图层的 URI 或 KML 字符串。KML 存储在服务器中,我有后端代码可以检索 URI 和字符串表示形式。
这是使用 URI 的方法。
function LoadKML(containerName, name)
{
let kmlURL = GetKmlURI(containerName, name);
let kmlLayer = new L.KML(kmlURL);
map.addLayer(kmlLayer);
}
Run Code Online (Sandbox Code Playgroud)
这是使用 kml 字符串的方法。
function LoadKML(containerName, name)
{
let kmlString = GetKmlString(containerName, name);
let kmlLayer = new L.KML.parseKML(kmlString);
map.addLayer(kmlLayer);
}
Run Code Online (Sandbox Code Playgroud)
由于 CORS 限制,我无法使用第一种方法获取 URL。第二种方法返回一个字符串,但无法正确解析。
KML.js:77 Uncaught TypeError: this.parseStyles is not a function
at new parseKML (KML.js:77)
at LoadKML (Account:470)
at Account:461
Run Code Online (Sandbox Code Playgroud)
我应该如何调用leaflet-kml中的函数?有没有可以轻松将 KML 加载到传单中的库?
我刚刚开始了一个旧项目,我需要做的第一件事就是从mysql_*扩展迁移到mysqli_*一个.我以前没有使用过很多PHP ...新代码的大部分都可以工作但是在下面的例子中我似乎搞砸了......
旧功能:
function user_id_from_username($username) {
$username = sanitize($username);
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
}
Run Code Online (Sandbox Code Playgroud)
新功能(无功能):
function user_id_from_username($username) {
$username = sanitize($username);
$id = mysqli_query(connect(),"SELECT `user_id` FROM `users` WHERE `username` = '$username'");
return $id;
}
Run Code Online (Sandbox Code Playgroud)
另一个旧的:
function login($username, $password) {
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) ==1) ? $user_id : FALSE;
}
Run Code Online (Sandbox Code Playgroud)
而新的: …