package com.appleyk.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Envelope;
/**
* 地图瓦片(切片) -- 墨卡托坐标切片工具
*
* @author yukun24@126.com
* @blob http://blog.csdn.net/appleyk
* @date 2018年4月4日-下午1:04:50
*/
public class WebMercatorUtils {
/**
* Web墨卡托 -- 互联网地图通用的地图投影方式,将椭圆形地图投影成平面上的正方形
* Bounds(地图范围)[minx,miny,maxx,maxy]
* 全世界墨卡托范围是:-20037580.3427892,-20037508.3427892,20037580.3427892,20037580.
* 3427892 从第四象限 --- 第一象限
*/
public static double minx = -20037508.3427892;
public static double maxx = 20037508.3427892;
/**
* 切片转范围
*
* @param x
* @param y
* @param level
* @return
*/
public static Envelope tileXYToNativeRectangle(int x, int y, int level) {
int xTiles = getNumberOfXTilesAtLevel(level);
int yTiles = getNumberOfYTilesAtLevel(level);
double xTileWidth = (maxx - minx) / xTiles;
double west = minx + x * xTileWidth;
double east = minx + (x + 1) * xTileWidth;
double yTileHeight = (maxx -