程序算法
诸葛苍穹
...
展开
-
新旧图号转换
地图新旧图号转换转载 2023-03-07 17:36:09 · 1097 阅读 · 0 评论 -
排序 算法 冒泡 快速 插入
public class Algorithms { public static void bubbleSort(int[] values) { for (int i = 0; i < values.length; i++) { for (int j = 1; j < values.length; j++) { if (values[j - 1] > values[j]) {原创 2022-03-29 14:29:42 · 321 阅读 · 0 评论 -
行列号转经纬度
XYZ标准是金字塔模型,前端根据层级、行列号请求瓦片,其参考坐标系是像素坐标系。故而需要根据层级和行列号换算出瓦片对应的地图坐标系范围。我们以3857坐标系和4326坐标系说明:3857坐标系对应瓦片范围 public static Geometry xyz2prj3857(int z, int x, int y) { double n = Math.pow(2, z); double lon_min = (x / n) * 40075016.0 - 200原创 2022-03-21 13:45:25 · 1248 阅读 · 0 评论 -
瓦片移除描述信息
private byte[] optionsImage(byte[] bytes) { Bitmap bitmap = new Bitmap(Image.FromStream(new MemoryStream(bytes))); //修改图片的属性 start foreach (PropertyItem item in bitmap.PropertyItems) { switch .原创 2021-11-11 17:40:24 · 60 阅读 · 0 评论 -
层行列和经纬度坐标之间的相互转化方法
谷歌地图层行列是以左上角为原点,瓦片编号是向右和向下,没有负数。谷歌是从左上角经纬度(-180,90)度开始计算瓦片,在第0级时谷歌将世界地图分为1块,第1级的时候分为4块。层zoom(z),列col(x),行row(y)如何在已知层行列情况计算出该瓦片对应的经纬度坐标,和已知经纬度情况下计算该点在不同层级下的瓦片位置,以左上角为原点。/** * 谷歌下转换经纬度对应的层行列 ...原创 2020-04-28 09:39:57 · 822 阅读 · 0 评论 -
javaScript深克隆
var cloneObj = function(obj){ var str, newobj = obj.constructor === Array ? [] : {}; if(typeof obj !== 'object'){ return; } else if(window.JSON){ str = JSON.stringify(obj),原创 2017-03-06 21:17:55 · 374 阅读 · 0 评论 -
tabSwitch 选项卡
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .tabCont{ width: 400px; margin: 30px auto; border:原创 2017-03-13 21:39:38 · 2066 阅读 · 0 评论 -
清除重复的点Point
function clearSamePoint(pt){ var count = pt.length; for(var i = 0; i < (count - 1)){ if(this.equal(pt[i].x,pt[i+1].x && this.equal(pt[i].y,pt[i+1].y))){ pt.splice(i,1);//原创 2017-07-19 21:47:05 · 732 阅读 · 0 评论 -
c#渐变算法
用两种RGB颜色对矩形进行线性渐变填充时,需要合适的算法计算各点的颜色,这样才不会出现中间过渡色,或者出现渐变填充不完整。而在增加从任意角度进行渐变后,情况似乎变得更加复杂。 又比如这样: 这些都是色彩计算错误引起的。现在来看看正确的渐变图,其中颜色和渐变角度和上面的一样: 首先说明渐变角度,在本例中是以垂直向上为0度,顺时针增加到360度。 如45度偏转渐变如下: ...原创 2018-07-04 19:46:07 · 5184 阅读 · 1 评论 -
数组克隆的两种方式
function clone(arr){ try{ return newArray = arr.slice(); }catch (e){ return false; }}//传统原创 2017-03-05 22:54:29 · 2610 阅读 · 0 评论 -
数组的长度
function arrLen(arr){ var len = 0; for(var i = 0; i < arr.length;i++){ len += Array.isArray(arr[i]) ? arrLen(arr[i]) : 1; } return len;}原创 2017-03-05 22:01:49 · 624 阅读 · 0 评论 -
把函数当做返回值
function unit(options){ function getMaxNum(arr){ var max = arr[0]; for(var i = 0; i < arr.length;i++){ if(max < arr[i]){ max = arr[i]原创 2017-03-04 11:13:38 · 258 阅读 · 0 评论 -
js字典算法
var Dict = function () { this.items = [];//用于保存项目};/* * method 添加 * parameter key,value * */Dict.prototype.add = function (key, value) { this.items[key] = value;};/** method 查找* parameter原创 2016-07-07 20:02:27 · 710 阅读 · 0 评论 -
对象转换成JSON
function toJSON(obj){ var objInn = obj; if (objInn == null) { return null; } switch (objInn.constructor) { case String: //s = "'" + str.replace原创 2016-08-26 21:43:36 · 550 阅读 · 0 评论 -
判断一个url字符串的字节长度是否过长
/** * 判断一个url字符串的字节长度是否过长。 * * Parameters: * url - {String} url字符串。 * * Returns: * {Boolean} url字符串的字节长度是否过长。 */function urlIsLong(url){ //当前url的字节长度。 var totalLength = 0, char原创 2016-08-26 21:45:27 · 2994 阅读 · 0 评论 -
实现js的日期
(function () { try { { //2016年10月15号11:06 星期六 //年份 var Y = new Date().getFullYear(); //月 var M = new Date().getMonth() + 1;原创 2016-10-15 12:48:09 · 204 阅读 · 0 评论 -
js的回调函数
(function () { function callBackFn(x,y,callBack) { this.x = x || 10; this.y = y || 10; if (callBack){ callBack(this.x + this.y); } } /*用法*/ a原创 2016-10-15 13:06:06 · 256 阅读 · 0 评论 -
jMap的练习
/** * Created by Administrator on 2016-10-15. *//** Map* */(function () { function jMap() { var arr = []; //增加 this.put = function (key,value) { arr[key] =原创 2016-10-15 17:34:20 · 231 阅读 · 0 评论 -
js实现多继承 复制
/****实现多继承**/** * Constructor: SuperMap.Class * 所有 类的基类。 * * (code) * var MyClass = new Class(prototype); * (end) * * 创建一个新的有多个继承类的SuperMap类,如下所示: * (code) * var MyClass = new Cla原创 2016-11-15 22:19:58 · 780 阅读 · 0 评论 -
js返回多值,利用对象
function obj(){ var obj = new Object(); var maxNum = arguments[0]; var avgNum,sum;for(var i = 0; i < arguments.length;i++){ sum + = arguments[i]; if(maxNum < argume原创 2017-03-02 21:44:35 · 282 阅读 · 0 评论 -
常见算法是js实现汇总
插入排序function insertSort(arr){ var key; for(var j = 1; j < arr.length ; j++){ //排好序的 var i = j - 1; key = arr[j]; while(i >= 0 && arr[i] > key) { arr[i + 1]原创 2016-04-21 14:32:51 · 340 阅读 · 0 评论