mirror of
https://github.com/dmsl/anyplace.git
synced 2021-06-25 09:21:17 +03:00
Updated how the asset are been accessed.
Updated the javascript for the clustering. Change the API javascript in order to use to local instance. Updated the logo.
This commit is contained in:
8
server/.gitignore
vendored
8
server/.gitignore
vendored
@@ -12,11 +12,5 @@ dist
|
||||
/.project
|
||||
/RUNNING_PID
|
||||
/.settings
|
||||
|
||||
|
||||
/target/
|
||||
!/target/universal/
|
||||
!/target/
|
||||
/target/resolution-cache/
|
||||
/target/scala-2.11/
|
||||
/target/streams/
|
||||
/target/web/
|
||||
|
||||
@@ -3,27 +3,13 @@ This is a latest version of the Anyplace backend, which has been ported to tha s
|
||||
|
||||
# Anyplace v3.0a for testers
|
||||
|
||||
You can run Anyplace v3.0a in two modes: a) Cloud Mode, where you host the backend but not the datastore and b) Hosted Mode, where you run the backend and the datastore.
|
||||
You can run Anyplace v3.0a using the provided backend and your own datastore.
|
||||
|
||||
## Cloud Mode (Testing only)
|
||||
In this mode you host the backend but not the datastore.
|
||||
1. **Download Anyplace v3.0a:** To proceed just download the following zip file [https://github.com/dmsl/anyplace/blob/develop/server/target/universal/anyplace_scala-1.0.zip](https://github.com/dmsl/anyplace/blob/develop/server/target/universal/anyplace_scala-1.0.zip).
|
||||
2. **Run Anyplace v3.0a:** Follow the instructions below ("How to run Anyplace v3.0a?").
|
||||
|
||||
**Note:** Please be aware that in this mode you will connect a replica READ-ONLY datastore of Anyplace on http://194.42.17.165. This datastore has been setup mainly for testing (i.e., proof-of-concept validation). Its not fully operational as it doesn't allow additions.
|
||||
|
||||
If you want to observe the couchbase 4.5 administrative interface for this mode use the following details.
|
||||
|
||||
* `url: http://194.42.17.165:8091/ui/index.html#/overview`
|
||||
* `username: open`
|
||||
* `password: openopen`
|
||||
|
||||
## Hosted Mode (Fully operational)
|
||||
## How to setup your own datastore and bankend?
|
||||
In this mode you run the backend and the datastore.
|
||||
1. **Install Couchbase v4.5:** Download the latest Couchbase Server Community Edition from [https://www.couchbase.com/downloads](https://www.couchbase.com/downloads)
|
||||
2. **Download Anyplace v3.0a:** Obtain the zip file as this is described in cloud mode.
|
||||
3. **Configure Anyplace v3.0a:**
|
||||
|
||||
+ Fill in the paremeters in `conf/application.conf` according to the development or production environment.
|
||||
* `application.secret` - This is a Play Framework parameter. You can see its purpose and how to generate one in Play Framework's [documentation](https://www.playframework.com/documentation/2.5.x/ApplicationSecret).
|
||||
* `server.address` - The URL the server is running on. (e.g. `http://anyplace.cs.ucy.ac.cy`)
|
||||
@@ -55,7 +41,22 @@ You need to set the username and the password for your couchbase instance.
|
||||
|
||||
## How to setup Anyplace v3.0a in you IDE?
|
||||
1. You can run the project locally on your personal computer using the [IntelliJ IDEA](https://www.jetbrains.com/idea/download/)
|
||||
**Important**: In order to run the Play project you need download and install the Ultimate edition.
|
||||
+ Download the [IntelliJ IDEA](https://www.jetbrains.com/idea/download/) (The Community Edition is free)
|
||||
+ Install the Scala plugin during the installation process
|
||||
+ Download the project from [GitHub](https://github.com/dmsl/anyplace/archive/develop.zip)
|
||||
+ Extract the `develop.zip` file
|
||||
+ Click `Open` under the `File` menu on the IntelliJ IDEA
|
||||
+ Choose the `anyplace-develop/server` directory of the extracted file (The directory icon should be marked)
|
||||
+ Check the `SBT sources` checkbox
|
||||
+ Setup the JAVA `jdk` if necessary
|
||||
+ Click `OK` (It should start downloading the required libraries ~10-15 mins)
|
||||
+ If you are using the Community Edition you need to do the following three additional steps
|
||||
* Click the dropdown menu on the right side of the IDE to `Edit configuration`
|
||||
* Add a new configuration click the `+` symbol
|
||||
* Choose `SBT Task` and then write "run" in the `tasks` fields
|
||||
+ Done!
|
||||
|
||||
**Important**: In order to fully support the Play project you need download and install the Ultimate edition.
|
||||
|
||||
|
||||
**Important**: You need to have installed the JAVA enviroment.
|
||||
|
||||
@@ -35,9 +35,11 @@
|
||||
*/
|
||||
package controllers
|
||||
|
||||
import java.io.File
|
||||
import play.api.libs.concurrent.Execution.Implicits._
|
||||
|
||||
import play.Play
|
||||
import play.api.libs.MimeTypes
|
||||
import play.api.libs.iteratee.Enumerator
|
||||
import play.api.mvc.Action
|
||||
|
||||
object AnyplaceAssets extends play.api.mvc.Controller {
|
||||
@@ -56,10 +58,10 @@ object AnyplaceAssets extends play.api.mvc.Controller {
|
||||
}
|
||||
|
||||
val reqFile = path + viewerDir + file
|
||||
val f = Play.application().resource(reqFile)
|
||||
if (f != null) {
|
||||
val ff = new File(f.getFile)
|
||||
Ok.sendFile(ff)
|
||||
val istream = Play.application().resourceAsStream(reqFile)
|
||||
if (istream != null) {
|
||||
val contentType = MimeTypes.forFileName(reqFile).getOrElse(BINARY)
|
||||
Ok.chunked(Enumerator.fromStream(istream).andThen(Enumerator.eof)).as(contentType)
|
||||
}
|
||||
else
|
||||
NotFound
|
||||
|
||||
@@ -73,9 +73,10 @@ object CouchbaseDatasource {
|
||||
if (sInstance == null) {
|
||||
val hostname = Play.application().configuration().getString("couchbase.hostname")
|
||||
val port = Play.application().configuration().getString("couchbase.port")
|
||||
val username = Play.application().configuration().getString("couchbase.username")
|
||||
val bucket = Play.application().configuration().getString("couchbase.bucket")
|
||||
val password = Play.application().configuration().getString("couchbase.password")
|
||||
sInstance = CouchbaseDatasource.createNewInstance(hostname, port, bucket, password)
|
||||
sInstance = CouchbaseDatasource.createNewInstance(hostname, port, bucket,username, password)
|
||||
try {
|
||||
sInstance.init()
|
||||
} catch {
|
||||
@@ -91,6 +92,7 @@ object CouchbaseDatasource {
|
||||
def createNewInstance(hostname_in: String,
|
||||
port_in: String,
|
||||
bucket_in: String,
|
||||
username_in: String,
|
||||
password_in: String): CouchbaseDatasource = {
|
||||
if (hostname_in == null || port_in == null || bucket_in == null || password_in == null) {
|
||||
throw new IllegalArgumentException("[null] parameters are not allowed to create a CouchbaseDatasource")
|
||||
@@ -99,16 +101,18 @@ object CouchbaseDatasource {
|
||||
val port = port_in.trim()
|
||||
val bucket = bucket_in.trim()
|
||||
val password = password_in.trim()
|
||||
if (hostname.isEmpty || port.isEmpty || bucket.isEmpty || password.isEmpty) {
|
||||
val username= username_in.trim()
|
||||
if (hostname.isEmpty || port.isEmpty || bucket.isEmpty || username.isEmpty || password.isEmpty) {
|
||||
throw new IllegalArgumentException("Empty string configuration are not allowed to create a CouchbaseDatasource")
|
||||
}
|
||||
new CouchbaseDatasource(hostname, port, bucket, password)
|
||||
new CouchbaseDatasource(hostname, port, bucket,username, password)
|
||||
}
|
||||
}
|
||||
|
||||
class CouchbaseDatasource private(hostname: String,
|
||||
port: String,
|
||||
bucket: String,
|
||||
username:String,
|
||||
password: String) extends IDatasource with IAccountService {
|
||||
|
||||
private var mHostname: String = hostname
|
||||
@@ -117,6 +121,9 @@ class CouchbaseDatasource private(hostname: String,
|
||||
|
||||
private var mBucket: String = bucket
|
||||
|
||||
|
||||
private var mUsername: String = username
|
||||
|
||||
private var mPassword: String = password
|
||||
|
||||
private var mCluster: CouchbaseCluster = _
|
||||
@@ -135,13 +142,14 @@ class CouchbaseDatasource private(hostname: String,
|
||||
.builder()
|
||||
.autoreleaseAfter(100000) //100000ms = 100s, default is 2s
|
||||
.connectTimeout(100000) //100000ms = 100s, default is 5s
|
||||
.socketConnectTimeout(100000) //100000ms = 100s, default is 5s
|
||||
.build()
|
||||
|
||||
// Connects to a cluster on hostname
|
||||
// if the other one does not respond during bootstrap.
|
||||
mCluster = CouchbaseCluster.create(env, mHostname)
|
||||
|
||||
mSecureBucket = mCluster.openBucket(mBucket, mPassword)
|
||||
mSecureBucket = mCluster.openBucket(mBucket,mPassword)
|
||||
} catch {
|
||||
case e: java.net.SocketTimeoutException =>
|
||||
LPLogger.error("CouchbaseDatasource::connect():: Error connection to Couchbase: " +
|
||||
@@ -337,7 +345,7 @@ class CouchbaseDatasource private(hostname: String,
|
||||
val viewQuery = ViewQuery.from("nav", "floor_by_buid").key(JsonArray.from(buid))
|
||||
|
||||
val res = couchbaseClient.query(viewQuery)
|
||||
println("couchbase results: " + res.size)
|
||||
println("couchbase results: " + res.totalRows())
|
||||
if (!res.success()) {
|
||||
throw new DatasourceException("Error retrieving floors from database!")
|
||||
}
|
||||
|
||||
@@ -71,10 +71,11 @@ server.address="localhost"
|
||||
|
||||
# Couchbase configuration
|
||||
# ~~~~~
|
||||
couchbase.hostname="http://anyplacedb1"
|
||||
couchbase.hostname=""
|
||||
couchbase.port=8091
|
||||
couchbase.bucket="open"
|
||||
couchbase.password="openopen"
|
||||
couchbase.bucket=""
|
||||
couchbase.username=""
|
||||
couchbase.password=""
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ GET /architect cont
|
||||
|
||||
### VIEWER WEBSITE ###
|
||||
GET /viewer/index.html controllers.AnyplaceWebApps.serveViewer(file="index.html")
|
||||
GET /viewer/*file controllers.AnyplaceAssets.at(path="/public", file)
|
||||
GET /viewer/*file controllers.AnyplaceAssets.at(path="public", file)
|
||||
GET /viewer/ controllers.AnyplaceWebApps.serveViewer(file="index.html")
|
||||
GET /viewer controllers.AnyplaceWebApps.AddTrailingSlash()
|
||||
|
||||
|
||||
BIN
server/public/anyplace_viewer/images/anyplace_logo_text3_0.png
Normal file
BIN
server/public/anyplace_viewer/images/anyplace_logo_text3_0.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -139,7 +139,7 @@
|
||||
<div class="container-fluid" id="gray-bg">
|
||||
|
||||
<div class="col-md-1 col-sm-2 col-xs-2 " id="div-logo">
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text_white2_8.png"/>
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text_white3_0.png"/>
|
||||
</div>
|
||||
|
||||
<!-- BUILDINGS -->
|
||||
@@ -236,7 +236,7 @@
|
||||
<li style="text-align: center;">
|
||||
<a href="https://anyplace.cs.ucy.ac.cy" target="_blank">
|
||||
<div class="div-logo-menu">
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text2_8.png"/>
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text3_0.png"/>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
(function(){var d=null;function e(a){return function(b){this[a]=b}}function h(a){return function(){return this[a]}}var j;
|
||||
function k(a,b,c){this.extend(k,google.maps.OverlayView);this.c=a;this.a=[];this.f=[];this.ca=[53,56,66,78,90];this.j=[];this.A=!1;c=c||{};this.g=c.gridSize||60;this.l=c.minimumClusterSize||2;this.J=c.maxZoom||d;this.j=c.styles||[];this.X=c.imagePath||this.Q;this.W=c.imageExtension||this.P;this.O=!0;if(c.zoomOnClick!=void 0)this.O=c.zoomOnClick;this.r=!1;if(c.averageCenter!=void 0)this.r=c.averageCenter;l(this);this.setMap(a);this.K=this.c.getZoom();var f=this;google.maps.event.addListener(this.c,
|
||||
"zoom_changed",function(){var a=f.c.getZoom();if(f.K!=a)f.K=a,f.m()});google.maps.event.addListener(this.c,"idle",function(){f.i()});b&&b.length&&this.C(b,!1)}j=k.prototype;j.Q="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/images/m";j.P="png";j.extend=function(a,b){return function(a){for(var b in a.prototype)this.prototype[b]=a.prototype[b];return this}.apply(a,[b])};j.onAdd=function(){if(!this.A)this.A=!0,n(this)};j.draw=function(){};
|
||||
"zoom_changed",function(){var a=f.c.getZoom();if(f.K!=a)f.K=a,f.m()});google.maps.event.addListener(this.c,"idle",function(){f.i()});b&&b.length&&this.C(b,!1)}j=k.prototype;j.Q="https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m";j.P="png";j.extend=function(a,b){return function(a){for(var b in a.prototype)this.prototype[b]=a.prototype[b];return this}.apply(a,[b])};j.onAdd=function(){if(!this.A)this.A=!0,n(this)};j.draw=function(){};
|
||||
function l(a){if(!a.j.length)for(var b=0,c;c=a.ca[b];b++)a.j.push({url:a.X+(b+1)+"."+a.W,height:c,width:c})}j.S=function(){for(var a=this.o(),b=new google.maps.LatLngBounds,c=0,f;f=a[c];c++)b.extend(f.getPosition());this.c.fitBounds(b)};j.z=h("j");j.o=h("a");j.V=function(){return this.a.length};j.ba=e("J");j.I=h("J");j.G=function(a,b){for(var c=0,f=a.length,g=f;g!==0;)g=parseInt(g/10,10),c++;c=Math.min(c,b);return{text:f,index:c}};j.$=e("G");j.H=h("G");
|
||||
j.C=function(a,b){for(var c=0,f;f=a[c];c++)q(this,f);b||this.i()};function q(a,b){b.s=!1;b.draggable&&google.maps.event.addListener(b,"dragend",function(){b.s=!1;a.L()});a.a.push(b)}j.q=function(a,b){q(this,a);b||this.i()};function r(a,b){var c=-1;if(a.a.indexOf)c=a.a.indexOf(b);else for(var f=0,g;g=a.a[f];f++)if(g==b){c=f;break}if(c==-1)return!1;b.setMap(d);a.a.splice(c,1);return!0}j.Y=function(a,b){var c=r(this,a);return!b&&c?(this.m(),this.i(),!0):!1};
|
||||
j.Z=function(a,b){for(var c=!1,f=0,g;g=a[f];f++)g=r(this,g),c=c||g;if(!b&&c)return this.m(),this.i(),!0};j.U=function(){return this.f.length};j.getMap=h("c");j.setMap=e("c");j.w=h("g");j.aa=e("g");
|
||||
j.v=function(a){var b=this.getProjection(),c=new google.maps.LatLng(a.getNorthEast().lat(),a.getNorthEast().lng()),f=new google.maps.LatLng(a.getSouthWest().lat(),a.getSouthWest().lng()),c=b.fromLatLngToDivPixel(c);c.x+=this.g;c.y-=this.g;f=b.fromLatLngToDivPixel(f);f.x-=this.g;f.y+=this.g;c=b.fromDivPixelToLatLng(c);b=b.fromDivPixelToLatLng(f);a.extend(c);a.extend(b);return a};j.R=function(){this.m(!0);this.a=[]};
|
||||
j.m=function(a){for(var b=0,c;c=this.f[b];b++)c.remove();for(b=0;c=this.a[b];b++)c.s=!1,a&&c.setMap(d);this.f=[]};j.L=function(){var a=this.f.slice();this.f.length=0;this.m();this.i();window.setTimeout(function(){for(var b=0,c;c=a[b];b++)c.remove()},0)};j.i=function(){n(this)};
|
||||
function n(a){if(a.A)for(var b=a.v(new google.maps.LatLngBounds(a.c.getBounds().getSouthWest(),a.c.getBounds().getNorthEast())),c=0,f;f=a.a[c];c++)if(!f.s&&b.contains(f.getPosition())){for(var g=a,u=4E4,o=d,v=0,m=void 0;m=g.f[v];v++){var i=m.getCenter();if(i){var p=f.getPosition();if(!i||!p)i=0;else var w=(p.lat()-i.lat())*Math.PI/180,x=(p.lng()-i.lng())*Math.PI/180,i=Math.sin(w/2)*Math.sin(w/2)+Math.cos(i.lat()*Math.PI/180)*Math.cos(p.lat()*Math.PI/180)*Math.sin(x/2)*Math.sin(x/2),i=6371*2*Math.atan2(Math.sqrt(i),
|
||||
Math.sqrt(1-i));i<u&&(u=i,o=m)}}o&&o.F.contains(f.getPosition())?o.q(f):(m=new s(g),m.q(f),g.f.push(m))}}function s(a){this.k=a;this.c=a.getMap();this.g=a.w();this.l=a.l;this.r=a.r;this.d=d;this.a=[];this.F=d;this.n=new t(this,a.z(),a.w())}j=s.prototype;
|
||||
Math.sqrt(1-i));i<u&&(u=i,o=m)}}o&&o.F.contains(f.getPosition())?o.q(f):(m=new s(g),m.q(f),g.f.push(m))}}function s(a){this.k=a;this.c=a.getMap();this.g=a.w();this.l=a.l;this.r=a.r;this.d=d;this.a=[];this.F=d;this.n=new t(this,a.z(),a.w())}j=s.prototype;
|
||||
j.q=function(a){var b;a:if(this.a.indexOf)b=this.a.indexOf(a)!=-1;else{b=0;for(var c;c=this.a[b];b++)if(c==a){b=!0;break a}b=!1}if(b)return!1;if(this.d){if(this.r)c=this.a.length+1,b=(this.d.lat()*(c-1)+a.getPosition().lat())/c,c=(this.d.lng()*(c-1)+a.getPosition().lng())/c,this.d=new google.maps.LatLng(b,c),y(this)}else this.d=a.getPosition(),y(this);a.s=!0;this.a.push(a);b=this.a.length;b<this.l&&a.getMap()!=this.c&&a.setMap(this.c);if(b==this.l)for(c=0;c<b;c++)this.a[c].setMap(d);b>=this.l&&a.setMap(d);
|
||||
a=this.c.getZoom();if((b=this.k.I())&&a>b)for(a=0;b=this.a[a];a++)b.setMap(this.c);else if(this.a.length<this.l)z(this.n);else{b=this.k.H()(this.a,this.k.z().length);this.n.setCenter(this.d);a=this.n;a.B=b;a.ga=b.text;a.ea=b.index;if(a.b)a.b.innerHTML=b.text;b=Math.max(0,a.B.index-1);b=Math.min(a.j.length-1,b);b=a.j[b];a.da=b.url;a.h=b.height;a.p=b.width;a.M=b.textColor;a.e=b.anchor;a.N=b.textSize;a.D=b.backgroundPosition;this.n.show()}return!0};
|
||||
j.getBounds=function(){for(var a=new google.maps.LatLngBounds(this.d,this.d),b=this.o(),c=0,f;f=b[c];c++)a.extend(f.getPosition());return a};j.remove=function(){this.n.remove();this.a.length=0;delete this.a};j.T=function(){return this.a.length};j.o=h("a");j.getCenter=h("d");function y(a){a.F=a.k.v(new google.maps.LatLngBounds(a.d,a.d))}j.getMap=h("c");
|
||||
@@ -15,7 +15,7 @@
|
||||
j.onAdd=function(){this.b=document.createElement("DIV");if(this.t)this.b.style.cssText=A(this,B(this,this.d)),this.b.innerHTML=this.B.text;this.getPanes().overlayMouseTarget.appendChild(this.b);var a=this;google.maps.event.addDomListener(this.b,"click",function(){var b=a.u.k;google.maps.event.trigger(b,"clusterclick",a.u);b.O&&a.c.fitBounds(a.u.getBounds())})};function B(a,b){var c=a.getProjection().fromLatLngToDivPixel(b);c.x-=parseInt(a.p/2,10);c.y-=parseInt(a.h/2,10);return c}
|
||||
j.draw=function(){if(this.t){var a=B(this,this.d);this.b.style.top=a.y+"px";this.b.style.left=a.x+"px"}};function z(a){if(a.b)a.b.style.display="none";a.t=!1}j.show=function(){if(this.b)this.b.style.cssText=A(this,B(this,this.d)),this.b.style.display="";this.t=!0};j.remove=function(){this.setMap(d)};j.onRemove=function(){if(this.b&&this.b.parentNode)z(this),this.b.parentNode.removeChild(this.b),this.b=d};j.setCenter=e("d");
|
||||
function A(a,b){var c=[];c.push("background-image:url("+a.da+");");c.push("background-position:"+(a.D?a.D:"0 0")+";");typeof a.e==="object"?(typeof a.e[0]==="number"&&a.e[0]>0&&a.e[0]<a.h?c.push("height:"+(a.h-a.e[0])+"px; padding-top:"+a.e[0]+"px;"):c.push("height:"+a.h+"px; line-height:"+a.h+"px;"),typeof a.e[1]==="number"&&a.e[1]>0&&a.e[1]<a.p?c.push("width:"+(a.p-a.e[1])+"px; padding-left:"+a.e[1]+"px;"):c.push("width:"+a.p+"px; text-align:center;")):c.push("height:"+a.h+"px; line-height:"+a.h+
|
||||
"px; width:"+a.p+"px; text-align:center;");c.push("cursor:pointer; top:"+b.y+"px; left:"+b.x+"px; color:"+(a.M?a.M:"black")+"; position:absolute; font-size:"+(a.N?a.N:11)+"px; font-family:Arial,sans-serif; font-weight:bold");return c.join("")}window.MarkerClusterer=k;k.prototype.addMarker=k.prototype.q;k.prototype.addMarkers=k.prototype.C;k.prototype.clearMarkers=k.prototype.R;k.prototype.fitMapToMarkers=k.prototype.S;k.prototype.getCalculator=k.prototype.H;k.prototype.getGridSize=k.prototype.w;
|
||||
"px; width:"+a.p+"px; text-align:center;");c.push("cursor:pointer; top:"+b.y+"px; left:"+b.x+"px; color:"+(a.M?a.M:"black")+"; position:absolute; font-size:"+(a.N?a.N:11)+"px; font-family:Arial,sans-serif; font-weight:bold");return c.join("")}window.MarkerClusterer=k;k.prototype.addMarker=k.prototype.q;k.prototype.addMarkers=k.prototype.C;k.prototype.clearMarkers=k.prototype.R;k.prototype.fitMapToMarkers=k.prototype.S;k.prototype.getCalculator=k.prototype.H;k.prototype.getGridSize=k.prototype.w;
|
||||
k.prototype.getExtendedBounds=k.prototype.v;k.prototype.getMap=k.prototype.getMap;k.prototype.getMarkers=k.prototype.o;k.prototype.getMaxZoom=k.prototype.I;k.prototype.getStyles=k.prototype.z;k.prototype.getTotalClusters=k.prototype.U;k.prototype.getTotalMarkers=k.prototype.V;k.prototype.redraw=k.prototype.i;k.prototype.removeMarker=k.prototype.Y;k.prototype.removeMarkers=k.prototype.Z;k.prototype.resetViewport=k.prototype.m;k.prototype.repaint=k.prototype.L;k.prototype.setCalculator=k.prototype.$;
|
||||
k.prototype.setGridSize=k.prototype.aa;k.prototype.setMaxZoom=k.prototype.ba;k.prototype.onAdd=k.prototype.onAdd;k.prototype.draw=k.prototype.draw;s.prototype.getCenter=s.prototype.getCenter;s.prototype.getSize=s.prototype.T;s.prototype.getMarkers=s.prototype.o;t.prototype.onAdd=t.prototype.onAdd;t.prototype.draw=t.prototype.draw;t.prototype.onRemove=t.prototype.onRemove;
|
||||
})();
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
var AnyplaceAPI = {};
|
||||
|
||||
AnyplaceAPI.FULL_SERVER = "http://anyplace.rayzit.com/anyplace";
|
||||
AnyplaceAPI.FULL_SERVER = "http://localhost:9000/anyplace";
|
||||
|
||||
/**
|
||||
* MAPPING API
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -147,7 +147,7 @@
|
||||
<div class="container-fluid" id="gray-bg">
|
||||
|
||||
<div class="col-md-1 col-sm-2 col-xs-2 " id="div-logo">
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text_white2_8.png"/>
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text_white3_0.png"/>
|
||||
</div>
|
||||
|
||||
<!-- BUILDINGS -->
|
||||
@@ -229,7 +229,7 @@
|
||||
<li style="text-align: center;">
|
||||
<a href="https://anyplace.cs.ucy.ac.cy" target="_blank">
|
||||
<div class="div-logo-menu">
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text2_8.png"/>
|
||||
<img style="width: 75px; height: auto" src="build/images/anyplace_logo_text3_0.png"/>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
(function(){var d=null;function e(a){return function(b){this[a]=b}}function h(a){return function(){return this[a]}}var j;
|
||||
function k(a,b,c){this.extend(k,google.maps.OverlayView);this.c=a;this.a=[];this.f=[];this.ca=[53,56,66,78,90];this.j=[];this.A=!1;c=c||{};this.g=c.gridSize||60;this.l=c.minimumClusterSize||2;this.J=c.maxZoom||d;this.j=c.styles||[];this.X=c.imagePath||this.Q;this.W=c.imageExtension||this.P;this.O=!0;if(c.zoomOnClick!=void 0)this.O=c.zoomOnClick;this.r=!1;if(c.averageCenter!=void 0)this.r=c.averageCenter;l(this);this.setMap(a);this.K=this.c.getZoom();var f=this;google.maps.event.addListener(this.c,
|
||||
"zoom_changed",function(){var a=f.c.getZoom();if(f.K!=a)f.K=a,f.m()});google.maps.event.addListener(this.c,"idle",function(){f.i()});b&&b.length&&this.C(b,!1)}j=k.prototype;j.Q="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/images/m";j.P="png";j.extend=function(a,b){return function(a){for(var b in a.prototype)this.prototype[b]=a.prototype[b];return this}.apply(a,[b])};j.onAdd=function(){if(!this.A)this.A=!0,n(this)};j.draw=function(){};
|
||||
"zoom_changed",function(){var a=f.c.getZoom();if(f.K!=a)f.K=a,f.m()});google.maps.event.addListener(this.c,"idle",function(){f.i()});b&&b.length&&this.C(b,!1)}j=k.prototype;j.Q="https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/images/m";j.P="png";j.extend=function(a,b){return function(a){for(var b in a.prototype)this.prototype[b]=a.prototype[b];return this}.apply(a,[b])};j.onAdd=function(){if(!this.A)this.A=!0,n(this)};j.draw=function(){};
|
||||
function l(a){if(!a.j.length)for(var b=0,c;c=a.ca[b];b++)a.j.push({url:a.X+(b+1)+"."+a.W,height:c,width:c})}j.S=function(){for(var a=this.o(),b=new google.maps.LatLngBounds,c=0,f;f=a[c];c++)b.extend(f.getPosition());this.c.fitBounds(b)};j.z=h("j");j.o=h("a");j.V=function(){return this.a.length};j.ba=e("J");j.I=h("J");j.G=function(a,b){for(var c=0,f=a.length,g=f;g!==0;)g=parseInt(g/10,10),c++;c=Math.min(c,b);return{text:f,index:c}};j.$=e("G");j.H=h("G");
|
||||
j.C=function(a,b){for(var c=0,f;f=a[c];c++)q(this,f);b||this.i()};function q(a,b){b.s=!1;b.draggable&&google.maps.event.addListener(b,"dragend",function(){b.s=!1;a.L()});a.a.push(b)}j.q=function(a,b){q(this,a);b||this.i()};function r(a,b){var c=-1;if(a.a.indexOf)c=a.a.indexOf(b);else for(var f=0,g;g=a.a[f];f++)if(g==b){c=f;break}if(c==-1)return!1;b.setMap(d);a.a.splice(c,1);return!0}j.Y=function(a,b){var c=r(this,a);return!b&&c?(this.m(),this.i(),!0):!1};
|
||||
j.Z=function(a,b){for(var c=!1,f=0,g;g=a[f];f++)g=r(this,g),c=c||g;if(!b&&c)return this.m(),this.i(),!0};j.U=function(){return this.f.length};j.getMap=h("c");j.setMap=e("c");j.w=h("g");j.aa=e("g");
|
||||
j.v=function(a){var b=this.getProjection(),c=new google.maps.LatLng(a.getNorthEast().lat(),a.getNorthEast().lng()),f=new google.maps.LatLng(a.getSouthWest().lat(),a.getSouthWest().lng()),c=b.fromLatLngToDivPixel(c);c.x+=this.g;c.y-=this.g;f=b.fromLatLngToDivPixel(f);f.x-=this.g;f.y+=this.g;c=b.fromDivPixelToLatLng(c);b=b.fromDivPixelToLatLng(f);a.extend(c);a.extend(b);return a};j.R=function(){this.m(!0);this.a=[]};
|
||||
j.m=function(a){for(var b=0,c;c=this.f[b];b++)c.remove();for(b=0;c=this.a[b];b++)c.s=!1,a&&c.setMap(d);this.f=[]};j.L=function(){var a=this.f.slice();this.f.length=0;this.m();this.i();window.setTimeout(function(){for(var b=0,c;c=a[b];b++)c.remove()},0)};j.i=function(){n(this)};
|
||||
function n(a){if(a.A)for(var b=a.v(new google.maps.LatLngBounds(a.c.getBounds().getSouthWest(),a.c.getBounds().getNorthEast())),c=0,f;f=a.a[c];c++)if(!f.s&&b.contains(f.getPosition())){for(var g=a,u=4E4,o=d,v=0,m=void 0;m=g.f[v];v++){var i=m.getCenter();if(i){var p=f.getPosition();if(!i||!p)i=0;else var w=(p.lat()-i.lat())*Math.PI/180,x=(p.lng()-i.lng())*Math.PI/180,i=Math.sin(w/2)*Math.sin(w/2)+Math.cos(i.lat()*Math.PI/180)*Math.cos(p.lat()*Math.PI/180)*Math.sin(x/2)*Math.sin(x/2),i=6371*2*Math.atan2(Math.sqrt(i),
|
||||
Math.sqrt(1-i));i<u&&(u=i,o=m)}}o&&o.F.contains(f.getPosition())?o.q(f):(m=new s(g),m.q(f),g.f.push(m))}}function s(a){this.k=a;this.c=a.getMap();this.g=a.w();this.l=a.l;this.r=a.r;this.d=d;this.a=[];this.F=d;this.n=new t(this,a.z(),a.w())}j=s.prototype;
|
||||
Math.sqrt(1-i));i<u&&(u=i,o=m)}}o&&o.F.contains(f.getPosition())?o.q(f):(m=new s(g),m.q(f),g.f.push(m))}}function s(a){this.k=a;this.c=a.getMap();this.g=a.w();this.l=a.l;this.r=a.r;this.d=d;this.a=[];this.F=d;this.n=new t(this,a.z(),a.w())}j=s.prototype;
|
||||
j.q=function(a){var b;a:if(this.a.indexOf)b=this.a.indexOf(a)!=-1;else{b=0;for(var c;c=this.a[b];b++)if(c==a){b=!0;break a}b=!1}if(b)return!1;if(this.d){if(this.r)c=this.a.length+1,b=(this.d.lat()*(c-1)+a.getPosition().lat())/c,c=(this.d.lng()*(c-1)+a.getPosition().lng())/c,this.d=new google.maps.LatLng(b,c),y(this)}else this.d=a.getPosition(),y(this);a.s=!0;this.a.push(a);b=this.a.length;b<this.l&&a.getMap()!=this.c&&a.setMap(this.c);if(b==this.l)for(c=0;c<b;c++)this.a[c].setMap(d);b>=this.l&&a.setMap(d);
|
||||
a=this.c.getZoom();if((b=this.k.I())&&a>b)for(a=0;b=this.a[a];a++)b.setMap(this.c);else if(this.a.length<this.l)z(this.n);else{b=this.k.H()(this.a,this.k.z().length);this.n.setCenter(this.d);a=this.n;a.B=b;a.ga=b.text;a.ea=b.index;if(a.b)a.b.innerHTML=b.text;b=Math.max(0,a.B.index-1);b=Math.min(a.j.length-1,b);b=a.j[b];a.da=b.url;a.h=b.height;a.p=b.width;a.M=b.textColor;a.e=b.anchor;a.N=b.textSize;a.D=b.backgroundPosition;this.n.show()}return!0};
|
||||
j.getBounds=function(){for(var a=new google.maps.LatLngBounds(this.d,this.d),b=this.o(),c=0,f;f=b[c];c++)a.extend(f.getPosition());return a};j.remove=function(){this.n.remove();this.a.length=0;delete this.a};j.T=function(){return this.a.length};j.o=h("a");j.getCenter=h("d");function y(a){a.F=a.k.v(new google.maps.LatLngBounds(a.d,a.d))}j.getMap=h("c");
|
||||
@@ -15,7 +15,7 @@
|
||||
j.onAdd=function(){this.b=document.createElement("DIV");if(this.t)this.b.style.cssText=A(this,B(this,this.d)),this.b.innerHTML=this.B.text;this.getPanes().overlayMouseTarget.appendChild(this.b);var a=this;google.maps.event.addDomListener(this.b,"click",function(){var b=a.u.k;google.maps.event.trigger(b,"clusterclick",a.u);b.O&&a.c.fitBounds(a.u.getBounds())})};function B(a,b){var c=a.getProjection().fromLatLngToDivPixel(b);c.x-=parseInt(a.p/2,10);c.y-=parseInt(a.h/2,10);return c}
|
||||
j.draw=function(){if(this.t){var a=B(this,this.d);this.b.style.top=a.y+"px";this.b.style.left=a.x+"px"}};function z(a){if(a.b)a.b.style.display="none";a.t=!1}j.show=function(){if(this.b)this.b.style.cssText=A(this,B(this,this.d)),this.b.style.display="";this.t=!0};j.remove=function(){this.setMap(d)};j.onRemove=function(){if(this.b&&this.b.parentNode)z(this),this.b.parentNode.removeChild(this.b),this.b=d};j.setCenter=e("d");
|
||||
function A(a,b){var c=[];c.push("background-image:url("+a.da+");");c.push("background-position:"+(a.D?a.D:"0 0")+";");typeof a.e==="object"?(typeof a.e[0]==="number"&&a.e[0]>0&&a.e[0]<a.h?c.push("height:"+(a.h-a.e[0])+"px; padding-top:"+a.e[0]+"px;"):c.push("height:"+a.h+"px; line-height:"+a.h+"px;"),typeof a.e[1]==="number"&&a.e[1]>0&&a.e[1]<a.p?c.push("width:"+(a.p-a.e[1])+"px; padding-left:"+a.e[1]+"px;"):c.push("width:"+a.p+"px; text-align:center;")):c.push("height:"+a.h+"px; line-height:"+a.h+
|
||||
"px; width:"+a.p+"px; text-align:center;");c.push("cursor:pointer; top:"+b.y+"px; left:"+b.x+"px; color:"+(a.M?a.M:"black")+"; position:absolute; font-size:"+(a.N?a.N:11)+"px; font-family:Arial,sans-serif; font-weight:bold");return c.join("")}window.MarkerClusterer=k;k.prototype.addMarker=k.prototype.q;k.prototype.addMarkers=k.prototype.C;k.prototype.clearMarkers=k.prototype.R;k.prototype.fitMapToMarkers=k.prototype.S;k.prototype.getCalculator=k.prototype.H;k.prototype.getGridSize=k.prototype.w;
|
||||
"px; width:"+a.p+"px; text-align:center;");c.push("cursor:pointer; top:"+b.y+"px; left:"+b.x+"px; color:"+(a.M?a.M:"black")+"; position:absolute; font-size:"+(a.N?a.N:11)+"px; font-family:Arial,sans-serif; font-weight:bold");return c.join("")}window.MarkerClusterer=k;k.prototype.addMarker=k.prototype.q;k.prototype.addMarkers=k.prototype.C;k.prototype.clearMarkers=k.prototype.R;k.prototype.fitMapToMarkers=k.prototype.S;k.prototype.getCalculator=k.prototype.H;k.prototype.getGridSize=k.prototype.w;
|
||||
k.prototype.getExtendedBounds=k.prototype.v;k.prototype.getMap=k.prototype.getMap;k.prototype.getMarkers=k.prototype.o;k.prototype.getMaxZoom=k.prototype.I;k.prototype.getStyles=k.prototype.z;k.prototype.getTotalClusters=k.prototype.U;k.prototype.getTotalMarkers=k.prototype.V;k.prototype.redraw=k.prototype.i;k.prototype.removeMarker=k.prototype.Y;k.prototype.removeMarkers=k.prototype.Z;k.prototype.resetViewport=k.prototype.m;k.prototype.repaint=k.prototype.L;k.prototype.setCalculator=k.prototype.$;
|
||||
k.prototype.setGridSize=k.prototype.aa;k.prototype.setMaxZoom=k.prototype.ba;k.prototype.onAdd=k.prototype.onAdd;k.prototype.draw=k.prototype.draw;s.prototype.getCenter=s.prototype.getCenter;s.prototype.getSize=s.prototype.T;s.prototype.getMarkers=s.prototype.o;t.prototype.onAdd=t.prototype.onAdd;t.prototype.draw=t.prototype.draw;t.prototype.onRemove=t.prototype.onRemove;
|
||||
})();
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
var AnyplaceAPI = {};
|
||||
|
||||
AnyplaceAPI.FULL_SERVER = "http://anyplace.rayzit.com/anyplace";
|
||||
AnyplaceAPI.FULL_SERVER = "http://localhost:9000/anyplace";
|
||||
|
||||
/**
|
||||
* MAPPING API
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:895d2a7ff81d2dc40836a6291e91e4649948da876c10f820e672b2f23122f5d0
|
||||
size 146347047
|
||||
oid sha256:54b1f0ca29fd5204a1e467f7050c53a6388cab7c6d2b699c35b2280a6f4cc3c3
|
||||
size 146434524
|
||||
|
||||
Reference in New Issue
Block a user