JavaScript 仅检测陆地或水域 Google map

标签 javascript api google-maps

我很难找出一种仅用 JavaScript 来检测特定(纬度、经度)的土地与水域的方法。使用 Canvas 使其工作并绕过 Chrome 污染的 Canvas 错误。我想我应该提出问题并回答。

最佳答案

function landOrWater( lat, lng, callback ) {
    var map_url = "http://maps.googleapis.com/maps/api/staticmap?center="+lat+","+lng+"&zoom="+map.getZoom()+"&size=1x1&maptype=roadmap"
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');

    var image = new Image();
    image.crossOrigin = "Anonymous"; // dope hack
    image.src = map_url;

    image.onload = function() {
        canvas.width = image.width;
        canvas.height = image.height;
        canvas.getContext('2d').drawImage(image, 0, 0, image.width, image.height);
        var pixelData = canvas.getContext('2d').getImageData(0, 0, 1, 1).data;
        if( pixelData[0] > 160 && pixelData[0] < 181 && pixelData[1] > 190 && pixelData[1] < 210 ) {
            result = "water";
        } else {
            result = "land";
        }
        callback(result);
    }
}

landOrWater( somelat, somelong, function(result){
    console.log( result );
});

关于JavaScript 仅检测陆地或水域 Google map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35073585/

相关文章:

javascript - SimplyScroll 在此页面上中断

javascript - jquery 移动可折叠 ListView 不适用于 li 标签

api - 如何在 SOAPUI 中为 http 参数使用全局属性?

java - 从 Google map 请求 JSON 给我 REQUEST_DENIED

android - 在 Android 的 fragment 中使用谷歌地图

javascript - 如何使用javascript在确认框中单击确认时重定向到另一个页面?

javascript - 事件多次调用

调用另一个 REST API 的 REST API

api - Twitter API : what is the difference between `name` and `screen_name` ? 哪一个是 url 用户名?

android - GPS 关闭时谷歌地图崩溃(请求位置)