private void setCorner(SetCorner corner, float x, float y) { float lon_r = GoogleStaticMap.mercatorXtoLon_r(x); float lat_r = GoogleStaticMap.mercatorYtoLat_r(y); switch (corner) { case SetCorner.NE: NE_LatLon.setLatLon_rad(lat_r, lon_r); NW_LatLon.lat_r = lat_r; SE_LatLon.lon_r = lon_r; NE_Mercator.x = x; NE_Mercator.y = y; NW_Mercator.y = y; SE_Mercator.x = x; break; case SetCorner.SW: SW_LatLon.setLatLon_rad(lat_r, lon_r); NW_LatLon.lon_r = lon_r; SE_LatLon.lat_r = lat_r; SW_Mercator.x = x; SW_Mercator.y = y; NW_Mercator.x = x; SE_Mercator.y = y; break; default: throw new System.ArgumentException("Invalid corner request. Only NE and SW corners can be set explicity. NW and SE are set internally.", "original"); } }
public override void OnInspectorGUI() { GoogleStaticMap googleStaticMap = (GoogleStaticMap)target; DrawDefaultInspector(); string helpMessage = "The Google Static Maps API lets you embed a Google Maps image on your web page without requiring JavaScript or any dynamic page loading. The Google Static Maps API service creates your map based on URL parameters sent through a standard HTTP request and returns the map as an image you can display on your web page."; EditorGUILayout.HelpBox(helpMessage, MessageType.Info); if (GUILayout.Button("Get a API key")) { Application.OpenURL("https://developers.google.com/maps/documentation/static-maps/"); } if (GUILayout.Button("Visit Google Maps API - Google Developers")) { Application.OpenURL("https://developers.google.com/maps/"); } if (GUILayout.Button("Visit API Credentials - Google Cloud Console")) { Application.OpenURL("https://console.cloud.google.com/apis/credentials"); } }
private GoogleStaticMap.MyPoint newCenterMercator(GoogleStaticMap map, GoogleStaticMap.MapRectangle.GetCorner corner) { Vector2 centerVec = map.getPositionOnMap(map.centerLatLon); Vector2 cornerVec = map.getPositionOnMap(map.mapRectangle.getCornerLatLon(corner)); Vector2 newVec = cornerVec + (cornerVec - centerVec); return(map.tileCenterMercator(map.getPositionOnMap(newVec))); }
IEnumerator Start() { getMainMap().initialize(); foreach (GameObject map in outerMaps) { getOuterMap(map).initialize(); } yield return(StartCoroutine(player_loc._StartLocationService())); StartCoroutine(player_loc.RunLocationService()); locationServicesIsRunning = player_loc.locServiceIsRunning; Debug.Log("Player loc from GameManager: " + player_loc.loc); GoogleStaticMap mainMap = getMainMap(); mainMap.centerMercator = mainMap.tileCenterMercator(player_loc.loc); mainMap.DrawMap(); mainMap.transform.localScale = Vector3.Scale( new Vector3(mainMap.mapRectangle.getWidthMeters(), mainMap.mapRectangle.getHeightMeters(), 1), new Vector3(mainMap.realWorldtoUnityWorldScale.x, mainMap.realWorldtoUnityWorldScale.y, 1)); getOuterMap(outerMaps[0]).centerMercator = newCenterMercator(mainMap, NW); getOuterMap(outerMaps[1]).centerMercator = newCenterMercator(mainMap, NW, NE); getOuterMap(outerMaps[2]).centerMercator = newCenterMercator(mainMap, NE); getOuterMap(outerMaps[3]).centerMercator = newCenterMercator(mainMap, NE, SE); getOuterMap(outerMaps[4]).centerMercator = newCenterMercator(mainMap, SE); getOuterMap(outerMaps[5]).centerMercator = newCenterMercator(mainMap, SW, SE); getOuterMap(outerMaps[6]).centerMercator = newCenterMercator(mainMap, SW); getOuterMap(outerMaps[7]).centerMercator = newCenterMercator(mainMap, NW, SW); foreach (GameObject map in outerMaps) { getOuterMap(map).DrawMap(); } for (int i = 0; i < outerMaps.Length; i++) { GameObject map = outerMaps[i]; GoogleStaticMap mapMap = getOuterMap(map); map.transform.localScale = Vector3.Scale( new Vector3(mapMap.mapRectangle.getWidthMeters(), mapMap.mapRectangle.getHeightMeters(), 1F), new Vector3(mapMap.realWorldtoUnityWorldScale.x, mapMap.realWorldtoUnityWorldScale.y, 1F)); setNewPos(i); } player.GetComponent <ObjectPosition>().setPositionOnMap(player_loc.loc); GameObject[] objectsOnMap = GameObject.FindGameObjectsWithTag("ObjectOnMap"); foreach (GameObject obj in objectsOnMap) { obj.GetComponent <ObjectPosition>().setPositionOnMap(); } }
private void setNewPos(int index) { GameObject map = outerMaps[index]; GoogleStaticMap mapMap = map.GetComponent <GoogleStaticMap>(); Vector2 newPos = getOuterMap(mainMap).getPositionOnMap(mapMap.centerLatLon); float yOff = 0.001f * (2 - Mathf.Abs(index - 4)); map.transform.position = new Vector3(newPos.x, yOff, newPos.y); }
void onEnterScene(bool flag) { if (flag) { goog = new GoogleStaticMap(); goog.initialize(); goog.DrawMap(); goog.DrawMapGUI(); } }
private void LoadFromDatabaseInDistance(List <QRCode> codes, string reply) { message.text = reply; if (codes != null) { foreach (var code in codes) { float distance = GoogleStaticMap.haversine_dist(code.GeoPoint, GetPlayerLocation()); if (distance <= resolution_distance) { Debug.Log("Enenmy found at location " + code.GeoPoint.ToString()); } } DisplayEnemies(codes); } }
private bool isOnMap() { GoogleStaticMap mainMap = GameManager.Instance.getMainMap(); return(mainMap.centerMercator.Equals(mainMap.tileCenterMercator(pos))); }
void Update() { if (!locationServicesIsRunning) { mapLoc.text = "Location Service is not enabled.\nLatitude: " + player_loc.loc.lat_d + ", Longitude: " + player_loc.loc.lon_d; //TODO: Show location service is not enabled error. return; } // playerGeoPosition = getMainMapMap ().getPositionOnMap(new Vector2(player.transform.position.x, player.transform.position.z)); playerGeoPosition = new GeoPoint(); // GeoPoint playerGeoPosition = getMainMapMap ().getPositionOnMap(new Vector2(player.transform.position.x, player.transform.position.z)); if (playerStatus == PlayerStatus.TiedToDevice) { playerGeoPosition = player_loc.loc; player.GetComponent <ObjectPosition>().setPositionOnMap(playerGeoPosition); } else if (playerStatus == PlayerStatus.FreeFromDevice) { playerGeoPosition = getOuterMap(mainMap).getPositionOnMap(new Vector2(player.transform.position.x, player.transform.position.z)); } GoogleStaticMap.MyPoint tileCenterMercator = getOuterMap(mainMap).tileCenterMercator(playerGeoPosition); mapLoc.text = tileCenterMercator.ToString() + "\nLatitude: " + player_loc.loc.lat_d + ", Longitude: " + player_loc.loc.lon_d; if (!getOuterMap(mainMap).centerMercator.isEqual(tileCenterMercator)) { // Re-add original map tile system, have outer maps generate each time around the current main map newMap.SetActive(true); GoogleStaticMap newMapMap = getNewMap(); newMapMap.initialize(); newMapMap.centerMercator = tileCenterMercator; newMapMap.DrawMap(); newMapMap.transform.localScale = Vector3.Scale( new Vector3(newMapMap.mapRectangle.getWidthMeters(), newMapMap.mapRectangle.getHeightMeters(), 1), new Vector3(newMapMap.realWorldtoUnityWorldScale.x, newMapMap.realWorldtoUnityWorldScale.y, 1)); Vector2 tempPosition = getMainMap().getPositionOnMap(newMapMap.centerLatLon); newMap.transform.position = new Vector3(tempPosition.x, 0, tempPosition.y); GameObject temp = newMap; newMap = mainMap; mainMap = temp; foreach (GameObject map in outerMaps) { getOuterMap(map).initialize(); } getOuterMap(outerMaps[0]).centerMercator = newCenterMercator(getOuterMap(mainMap), NW); getOuterMap(outerMaps[1]).centerMercator = newCenterMercator(getOuterMap(mainMap), NW, NE); getOuterMap(outerMaps[2]).centerMercator = newCenterMercator(getOuterMap(mainMap), NE); getOuterMap(outerMaps[3]).centerMercator = newCenterMercator(getOuterMap(mainMap), NE, SE); getOuterMap(outerMaps[4]).centerMercator = newCenterMercator(getOuterMap(mainMap), SE); getOuterMap(outerMaps[5]).centerMercator = newCenterMercator(getOuterMap(mainMap), SW, SE); getOuterMap(outerMaps[6]).centerMercator = newCenterMercator(getOuterMap(mainMap), SW); getOuterMap(outerMaps[7]).centerMercator = newCenterMercator(getOuterMap(mainMap), NW, SW); foreach (GameObject map in outerMaps) { getOuterMap(map).DrawMap(); } for (int i = 0; i < outerMaps.Length; i++) { GameObject map = outerMaps[i]; GoogleStaticMap mapMap = getOuterMap(map); map.transform.localScale = Vector3.Scale( new Vector3(mapMap.mapRectangle.getWidthMeters(), mapMap.mapRectangle.getHeightMeters(), 1F), new Vector3(mapMap.realWorldtoUnityWorldScale.x, mapMap.realWorldtoUnityWorldScale.y, 1F)); setNewPos(i); } } if (getMainMap().isDrawn&& !mainMap.GetComponent <MeshRenderer>().enabled) { mainMap.GetComponent <MeshRenderer>().enabled = true; newMap.GetComponent <MeshRenderer>().enabled = false; newMap.SetActive(false); } }