using UnityEngine; public class CheckLocationOnMap: MonoBehaviour { private bool CheckLocation(double lng, double lat) { OnlineMaps api = OnlineMaps.instance; double tlx, tly, brx, bry; api.GetTopLeftPosition(out tlx, out tly); api.GetBottomRightPosition(out brx, out bry); if (brx < tlx) brx += 360; double px, py; api.projection.CoordinatesToTile(tlx, tly, api.zoom, out px, out py); return ((lng > tlx && lng < brx) || (lng + 360 > tlx && lng + 360 < brx) || (lng - 360 > tlx && lng - 360 < brx)) && lat < tly && lat > bry; } private void Start() { OnlineMapsControlBase.instance.OnMapClick += OnMapClick; } private void OnMapClick() { // Check the location on the map. bool zeroLocationOnMap = CheckLocation(0, 0); Vector2 mouseLocation = OnlineMapsControlBase.instance.GetCoords(); bool mouseLocationOnMap = CheckLocation(mouseLocation.x, mouseLocation.y); Debug.Log(zeroLocationOnMap? "Zero location on the map": "Zero location is not on the map"); Debug.Log(mouseLocationOnMap ? "Mouse location on the map" : "Mouse location is not on the map"); // Converts the geographic coordinates into the coordinates of the tile. double mx, my; // Old way (2.4.0.28 or less) OnlineMapsUtils.LatLongToTiled(mouseLocation.x, mouseLocation.y, OnlineMaps.instance.zoom, out mx, out my); // New way (2.4.0.29 or higher) // OnlineMaps.instance.projection.CoordinatesToTile(mouseLocation.x, mouseLocation.y, OnlineMaps.instance.zoom, out mx, out my); Debug.Log(string.Format("Mouse location tile ({0}; {1})", mx, my)); } }