カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

iOS12.3.1でイベントdeviceorientationが動作しない

iOS 12.3.1のSafariでは、デフォルトでセンサーの値が取得できなくなったようです。

window.addEventListener("deviceorientation", function(event){}, true);

上記イベントがキャッチできません。

iOS 12.1では動作することを実機で確認しました。

対応策としては[設定]-[Safari]-[モーションと画面の向きのアクセス]をONにすると
キャッチできるようになりますが、一般ユーザーにこの設定を変えてもらうわけにはいきませんよね;
他に何か有用な情報を発見したら追記したいと思います。

この記事がお役に立ちましたらシェアお願いします

396 views

GoogleMapにGeoJsonデータを読み込んで表示する

GoogleMapに図形等を描画するのに非常に便利な方法がありました。

//GoogleMapインスタンスを生成(v3)
map = new google.maps.Map(document.getElementById("map"), { center: new google.maps.LatLng(35.6585809608813, 139.74543258547783) } );

// GeoJsonを読み込む
map.data.loadGeoJson('sample.geojson');

// スタイルを設定
map.data.setStyle(function(feature) {

    var myStyle = {
        fillColor: "#9AD2AE",
        fillOpacity: 0.5,
        strokeColor: "#1EB26A",
        strokeOpacity: 0.8,
        strokeWeight: 2,
        clickable: true,
        visible: true,
        zIndex: 1
    };

    return (myStyle);

});

sample.geojsonの内容

{
"type": "FeatureCollection",
"name": "sample",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "name": "サンプル1" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 139.74472479682004, 35.659171090464596 ], [ 139.74610447883606, 35.659171090464596 ], [ 139.74610447883606, 35.65809388391181 ], [ 139.74472479682004, 35.65809388391181 ], [ 139.74472479682004, 35.659171090464596 ] ] ] } }
]
}

今回はポリゴンのみですが、他にポイントやポリラインもGeoJsonで読み込み可能です。
GeoJsonは統一された規格なので汎用性があり便利です。

この記事がお役に立ちましたらシェアお願いします

431 views

GoogleMaps 数字アイコンを表示する

targetPoint = new google.maps.LatLng(lat, lng);

markerOptions.map = map;
markerOptions.position = targetPoint;
markerOptions.icon = makeNumIcon(1, 'ff7e73');

var marker = new google.maps.Marker(markerOptions);

//ラベル位置の調整(x, y)
marker.icon.labelOrigin = new google.maps.Point(9, 0);

//ラベルを設定
marker.setOptions({label:{text: '1',color: '#000',fontSize: '20px'}});

marker.setMap(map);


// 数字アイコン作成
//{
    makeNumIcon = function(n, color)
    {
        var icon_color = color || 'ff7e73'; //カラーが指定されなかった場合はデフォルトのカラー

        //文字ありのピン
        //var icon = new google.maps.MarkerImage('//chart.apis.google.com/chart?chst=d_map_pin_letter&chld='+ n + '|' + icon_color + '|000000');

        //文字ありのピン(フォントサイズ等指定)
        //var icon = new google.maps.MarkerImage('//chart.apis.google.com/chart?chst=d_map_spin&chld=0.8|0|' + icon_color + '|16|b|'+ n);

        //文字なしのピン
        var icon = new google.maps.MarkerImage('//chart.apis.google.com/chart?chst=d_map_spin&chld=0.5|0|' + icon_color + '|16|b|');

        return icon;
    }
//}

この記事がお役に立ちましたらシェアお願いします

458 views

Javascript 配列

JavaScriptの配列の基本的な使い方

配列の宣言

var array = new Array();

または

var array = [];

例)

var array = new Array("a", "b", "c");
var array = ["a", "b", "c"];

要素の追加

先頭に追加する

var array = ["b", "c"];
array.unshift("a"); //["a", "b", "c"]となる

末尾に追加する

var array = ["a", "b", "c"];
array.push("d"); //["a", "b", "c", "d"]となる

配列の結合

配列を結合し新たな配列を生成します。
(元の配列はそのまま)

var array1 = ["a", "b"];
var array2 = ["c", "d"];

var array = array1.concat(array2); //["a", "b", "c", "d"]となる

続きを読む…»

この記事がお役に立ちましたらシェアお願いします

690 views

描画ツールライブラリを使う GoogleMap v3

描画ツールを使うとユーザーが地図上に図形を描画することができます。
実際に使用するクラスは「DrawingManager」になります。

このツールは独立したAPIなので、別途使用することを明記しなくてはなりません。
API読み込みの際にパラメータを追加します。

GoogleMapAPI version 3.26

<script type="text/javascript"
  src="https://maps.googleapis.com/maps/api/js?key=[YOUR_API_KEY]&libraries=drawing">
</script>

実装方法は以下のようになります。

var drawingManager = new google.maps.drawing.DrawingManager();
drawingManager.setMap(map);

様々なオプションを指定して実装する

drawingManager = new google.maps.drawing.DrawingManager({
    drawingMode: google.maps.drawing.OverlayType.MARKER, //CIRCLE, MARKER, POLYGON, POLYLINE, RECTANGLE
    drawingControl: true,
    drawingControlOptions: {
        position: google.maps.ControlPosition.TOP_CENTER,
        drawingModes: ['polygon', 'rectangle'] //['marker', 'polyline', 'rectangle', 'circle', 'polygon']
    },
    polygonOptions: {
        fillColor: '#999999',
        fillOpacity: 0.5,
        strokeWeight: 3,
        clickable: false,
        editable: true,
        zIndex: 1
    },
    rectangleOptions: {
        fillColor: '#999999',
        fillOpacity: 0.5,
        strokeWeight: 3,
        clickable: false,
        editable: true,
        zIndex: 1
    }
});
drawingManager.setMap(map);

続きを読む…»

この記事がお役に立ちましたらシェアお願いします

1,145 views