tablacusmapsapi

0.1.6 • Public • Published

Tablacus Maps API

Yet another Maps API with leaflet (OpenStreetMap)

Usage

Latest version

<script async defer src="https://unpkg.com/tablacusmapsapi/tablacusmapsapi.js?alias=google&...." ></script>

Specify version 0.1.6

<script async defer src="https://unpkg.com/tablacusmapsapi@0.1.6/tablacusmapsapi.js?alias=google&...." ></script>
<script>
var map;
var geocoder;

function initMap ()
{
    var latlng = new google.maps.LatLng(37.78, -122.41);
    map = new google.maps.Map(document.getElementById('map'), {
        zoom: 11,
        center: latlng
    });
    geocoder = new google.maps.Geocoder();
}

function setCenter(o)
{
    var latlng = new google.maps.LatLng(document.F.centerLat.value, document.F.centerLng.value);
    map.setCenter(latlng);
}

function marker(o)
{
    var latlng = new google.maps.LatLng(document.F.markerLat.value, document.F.markerLng.value);
    var marker = new google.maps.Marker({
        title: "Tooltip",
        position: latlng,
        map: map
    });
    var infoWin = new google.maps.InfoWindow({content:"marker Info window"});
    google.maps.event.addListener(marker, 'click', function(){
        infoWin.open(map, marker);
    });
}

function markerIcon(o)
{
    var latlng = new google.maps.LatLng(document.F.marker2Lat.value, document.F.marker2Lng.value);
    var marker = new google.maps.Marker({
        title: "Tooltip",
        position: latlng,
        icon: document.F.marker2Img.value,
        map: map
    });
    var infoWin = new google.maps.InfoWindow({content:"marker Info window"});
    google.maps.event.addListener(marker, 'click', function(){
        infoWin.open(map, marker);
    });
}

function clickEvent(o)
{
    o.disabled = true;
    google.maps.event.addListener(map, 'click', function (event)
    {
        document.getElementById("lat").innerHTML = event.latLng.lat();
        document.getElementById("lng").innerHTML = event.latLng.lng();
    });
}

function circle(o)
{
    var circle = new google.maps.Circle({
        center: new google.maps.LatLng(document.F.circleLat.value, document.F.circleLng.value),
        map: map,
        radius: document.F.circleRadius.value
      });
}

function rectangle(o)
{
    var rectangle = new google.maps.Rectangle({
        bounds: new google.maps.LatLngBounds(new google.maps.LatLng(document.F.rect1Lat.value, document.F.rect1Lng.value),
                     new google.maps.LatLng(document.F.rect2Lat.value, document.F.rect2Lng.value)),
        map: map,
      });
}

function polyline(o)
{
    var patharray = new Array();
    var ar = document.F.polylineLatLngs.value.split(/\n/);
    for (var i in ar) {
        var latlng = ar[i].split(/,/);
        if (latlng[0] && latlng[1]) {
            patharray.push(new google.maps.LatLng(latlng[0], latlng[1]));
        }
    }
    var polyline = new google.maps.Polyline({
        map: map,
        path: patharray
    });
}

function polygon(o)
{
    var patharray = new Array();
    var ar = document.F.polygonLatLngs.value.split(/\n/);
    for (var i in ar) {
        var latlng = ar[i].split(/,/);
        if (latlng[0] && latlng[1]) {
            patharray.push(new google.maps.LatLng(latlng[0], latlng[1]));
        }
    }
    var polygon = new google.maps.Polygon({
        map: map,
        paths: patharray
    });
}

function geocoding()
{
    geocoder.geocode( { 'address': document.F.geoQuery.value },
        function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var latlng = results[0].geometry.location;
                map.setCenter(latlng);
                document.getElementById('geoLat').innerHTML = latlng.lat();
                document.getElementById('geoLng').innerHTML = latlng.lng();

                var marker = new google.maps.Marker({
                    title: document.F.geoQuery.value,
                    position: latlng,
                    map: map
                });
            }
        }
    );
}

function toggle(s)
{
    var o = document.getElementById(s);
    o.style.display = /none/i.test(o.style.display) ? "block" : "none"; 
}
</script>
<script async src="https://unpkg.com/tablacusmapsapi/tablacusmapsapi.js?callback=initMap&alias=google"></script>

<div id="map" style="width: calc(100% - 20em); height: 100%; float: left"></div>
<form name="F">
    <input type="button" value="+" onclick="toggle('_setCenter')">
    <div id="_setCenter" style="display: none">
        lat:<input type="number" name="centerLat" value="37.78"><br>
        lng:<input type="number" name="centerLng" value="-122.41">
    </div>
    <input type="button" value="setCenter" onclick="setCenter(this)">
    <hr>
    <input type="button" value="+" onclick="toggle('_clickEvent')">
    <input type="button" value="Click event" onclick="clickEvent(this)">
    <div id="_clickEvent" style="display: none">
        lat: <span id="lat"></span><br>
        lng: <span id="lng"></span><br>
    </div>
    <hr>
    <input type="button" value="+" onclick="toggle('_marker')">
    <div id="_marker" style="display: none">
        lat: <input type="number" name="markerLat" value="37.78"><br>
        lng: <input type="number" name="markerLng" value="-122.41">
    </div>
    <input type="button" value="Marker" onclick="marker(this)"><br>
    <hr>
    <input type="button" value="+" onclick="toggle('_marker2')">
    <div id="_marker2" style="display: none">
        lat: <input type="number" name="marker2Lat" value="37.82"><br>
        lng: <input type="number" name="marker2Lng" value="-122.37"><br>
        img: <input type="text" name="marker2Img" value="./xf.png">
    </div>
    <input type="button" value="Marker icon" onclick="markerIcon(this)"><br>
    <hr>
    <input type="button" value="+" onclick="toggle('_circle')">
    <div id="_circle" style="display: none">
        lat:<input type="number" name="circleLat" value="37.86"><br>
        lng:<input type="number" name="circleLng" value="-122.43"><br>
        radius:<input type="number" name="circleRadius" value="2500">
    </div>
    <input type="button" value="Circle" onclick="circle(this)"><br>
    <hr>
    <input type="button" value="+" onclick="toggle('_rectangle')">
    <div id="_rectangle" style="display: none">
        lat:<input type="number" name="rect1Lat" value="37.77"><br>
        lng:<input type="number" name="rect1Lng" value="-122.45"><br>
        lat:<input type="number" name="rect2Lat" value="37.74"><br>
        lng:<input type="number" name="rect2Lng" value="-122.51"><br>
    </div>
    <input type="button" value="Rectangle" onclick="rectangle(this)"><br>
    <hr>
    <input type="button" value="+" onclick="toggle('_polyline')">
    <div id="_polyline" style="display: none">
        <textarea name="polylineLatLngs" style="height: 5em">37.78,-122.44
37.78,-122.47
37.86,-122.49
        </textarea>
    </div>
    <input type="button" value="Polyline" onclick="polyline(this)"><br>
    <hr>
    <input type="button" value="+" onclick="toggle('_polygon')">
    <div id="_polygon" style="display: none">
        <textarea name="polygonLatLngs" style="height: 5em">37.77,-122.42
37.80,-122.27
37.72,-122.21
        </textarea>
    </div>
    <input type="button" value="Polygon" onclick="polygon(this)"><br>
    <hr>
    <input type="button" value="+" onclick="toggle('_geocoding')">
    <div id="_geocoding" style="display: none">
        lat:<span id="geoLat"></span><br>
        lng:<span id="geoLng"></span><br>
        <input type="text" name="geoQuery" value="berkeley">
    </div>
    <input type="button" value="Geocoding" onclick="geocoding(this)"><br>
    <hr>
</form>

Dependents (0)

Package Sidebar

Install

npm i tablacusmapsapi

Weekly Downloads

35

Version

0.1.6

License

MIT

Unpacked Size

50.2 kB

Total Files

7

Last publish

Collaborators

  • tablacus