刻々と刻まれた地理情報システムのドキュメントを見逃すことがある (LOCKGIS、php バックグラウンド管理、3 端末統合型 PC-H5-WeChat アプレット、Baidu 地図 jsAPI の二次開発、ラベル ポップアップ ナビゲーション)

序文

Leoke 時々インテリジェント地理情報システム、英語名 LOCKGIS (以下、LOCKGIS) は、Baidu Maps JavaScript API に基づいており、開発者が Web サイトで機能豊富でインタラクティブな地図アプリケーションを構築し、地理的位置をデジタル技術と統合できるようにすることを目的としています。 、ユーザーにリアルタイムで効果的な地理情報サービスを提供します。
LOCKGIS は、Web、モバイル、デスクトップ アプリケーションなどを通じて地図データと地理情報を表示し、ユーザーが地図の閲覧、位置検索、ルート計画などの機能を実現できるようにします。同時に、不動産、観光、物流、運輸、その他の分野などのさまざまな業界にも適用でき、関連企業や個人に位置情報サービスとソリューションを提供し、業務効率とサービス品質を向上させることができます。 、経済発展を促進します。
さらに、地図開発では人工知能、ビッグデータ、その他のテクノロジーを組み合わせて、よりインテリジェントで効率的な地理情報サービスを実現し、人々にさらなる利便性と経験をもたらすこともできます。
LOCKGIS の二次開発者は、独自のアプリケーションのニーズに応じて地図 API の拡張とカスタマイズをカスタマイズして、ビジネス ニーズにより一致した機能効果を実現し、ユーザーにより良いサービスを提供できます。
地図情報システムの二次開発により、以下の機能が実現できます。

  1. 地理位置情報: 地図上でデータを見つけてラベルを付けると、データがより直感的で理解しやすくなります。
  2. データ分析: 地図上にマークされたデータの統計分析を通じて、データ間の関係や規則性をより迅速に発見できます。
  3. ビジネス開発:二次開発により、ニーズに応じて地図 API の機能を拡張できるため、開発者は関連ビジネスを迅速に実現するのに便利です。
  4. データの視覚化: データ視覚化プラットフォームにマップを展開すると、ユーザーがデータをより深く理解できるように、視覚的な方法でデータをマップ上に表示できます。
  5. マーケットのカスタマイズ:マップのスタイル、アイコン、メモなどをカスタマイズすることで、企業のブランドスタイルやビジネスニーズに応じて独自の特徴を示すことができます。
    場合によっては、地理情報システムの二次開発は、企業や開発者がビジネス ニーズをより適切に認識し、アプリケーション開発効率を向上させ、より良いサービスをユーザーに提供するのに役立ちます。

1. 動作環境

(1) 環境検査

オペレーティング システム: Linux、WINNT、
PHP バージョン: 5.5 以降、
MySQL バージョン: 5.6 以降、

(2) 権限チェック

conf: 書き込み可能;
アップロード: 書き込み可能;

(3) 機能サポート

file_get_contents(): サポート
mb_convert_encoding(): サポート
json_encode(): サポート

(4) ドメイン名関連

1. ドメイン名登録、そうでない場合はサーバーおよびビジネスドメイン名をミニプログラムに追加できません;
2. SSL 証明書、そうでない場合はドメイン名を正常にバインドできず、ミニプログラムでリアルタイム測位機能を実現できます。

2. コアコード

(1) 座標表示

  • インストール速度と実際の効果を考慮して、最初に最新の 100 個の座標点をロードします。
  • 検索してすべての座標を表示します。
public function getMarkers()
    {
    
    
        global $db, $res;
        dbc();
        //获取数据;
        @$keywords = get_param("keywords");
        $sql = "select poi_id,poi_sn,poi_name,poi_area,poi_address,poi_lon,poi_lat,poi_type,poi_phone from " . $db->table('poi') . " WHERE 1 ";
        if ($keywords != "") {
    
    
            $sql .= " AND poi_name like '%" . $keywords . "%'";
        }
        $sql .= " ORDER BY poi_id DESC";
        //首次加载默认显示,搜索全部显示
        if ($keywords == "") {
    
    
            $sql .= " LIMIT 100";
        }
        $row = $db->queryall($sql);
        $res['code'] = 0;
        $res["data"] = $row;
        die(json_encode_lockdata($res));
    }

(2) リアルタイム測位

//初始化地图;
var map;

function map_init() {
    
    
    map = new BMap.Map("lock_map", {
    
    enableMapClick: false});
    var point = new BMap.Point(120.199672, 30.331184);
    map.centerAndZoom(point, 17);
    map.enableScrollWheelZoom();

    // 添加定位控件;
    var geolocationControl = new BMap.GeolocationControl();
    map.addControl(geolocationControl);
    //绑定定位成功后事件
    geolocationControl.addEventListener("locationSuccess", function (e) {
    
    
        console.log(e.point.lng) //定位成功后调用逆地址解析函数
    });
    //绑定定位失败后事件
    geolocationControl.addEventListener("locationError", function (e) {
    
    
        //console.log(e);
        map.centerAndZoom("宁波市", 17); //用城市名设置地图中心点
    });

    //自动定位;
    getBdGeo();

    function getBdGeo() {
    
    
        var geolocation = new BMap.Geolocation();
        geolocation.getCurrentPosition(function (r) {
    
    
            if (this.getStatus() == BMAP_STATUS_SUCCESS) {
    
    
                map.clearOverlays();
                map.panTo(r.point);
                //alert(JSON.stringify(r));
                $("#poi_address").val(r.address.province + r.address.city + r.address.district + r.address.street + r.address.street_number);
                $("#lnglat").val(r.point.lng + "," + r.point.lat)

                //返回当前中心点;
                var points = new BMap.Point(r.point.lng, r.point.lat);
                map.centerAndZoom(points, 17);

                //添加标注;
                var marker = new BMap.Marker(points);
                map.addOverlay(marker);
                marker.enableDragging();
                marker.addEventListener('dragend', function () {
    
    
                    //console.log(marker.getPosition().lat);
                    $("#lnglat").val(marker.getPosition().lng + "," + marker.getPosition().lat)
                })
            } else {
    
    
                //定位失败
                layer.msg('无法获取定位,系统将自动定位,错误码:' + this.getStatus(), {
    
    icon: 2, time: 1000}, function () {
    
    
                    map.centerAndZoom("宁波市", 17); //用城市名设置地图中心点
                })
            }
        }, function (error) {
    
    
            console.log(error);
        }, {
    
    
            enableHighAccuracy: true,//是否要求高精度的地理位置信息
            timeout: 1000,//对地理位置信息的获取操作做超时限制,如果再该事件内未获取到地理位置信息,将返回错误
            maximumAge: 0//设置缓存有效时间,在该时间段内,获取的地理位置信息还是设置此时间段之前的那次获得的信息,超过这段时间缓存的位置信息会被废弃
        });
    }
}

3. インターフェース表示

(1) WeChatミニプログラムターミナル

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

(2)H5表示ページ

ここに画像の説明を挿入
ここに画像の説明を挿入

(3) パソコン端末

ここに画像の説明を挿入

(4) PHPバックグラウンド管理

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

4. 技術的特徴

(1) プライベート展開をサポート

プライベート展開とは、サードパーティが提供するサービスを使用するのではなく、ソフトウェアを独自のサーバーまたはクラウド サーバーに展開することを指します。LOCKGIS はプライベート展開をサポートしています。

  1. セキュリティの向上: プライベート展開により、機密データと知的財産をより適切に保護し、データの漏洩や侵害を回避できます。
  2. よりカスタマイズ可能: プライベート展開は、企業自体のニーズに応じてカスタマイズおよびカスタマイズできるため、企業のビジネス ニーズとより一致します。
  3. より強力な制御性: プライベート展開では、システムの動作状況とデータ フローをリアルタイムで監視および管理できるため、制御性が向上します。
  4. 低コスト: プライベート展開では、サードパーティ サービスの使用コストを回避でき、既存の機器やクラウド サーバーを使用してハードウェア コストを削減できます。
  5. サードパーティへの依存なし: プライベート展開では、サードパーティが提供するサービスに依存する必要がなく、サードパーティのサービスの制限の影響を受けません。

(2) LOCKGIS開発の特徴

GIS 開発アプリケーションとして、地理データと空間データを操作および処理し、マップ上で実行されるユーザー インターフェイスを構築してこれらのデータを視覚化する必要があります。

  1. 優れた地図最下層
    地図は GIS アプリケーションの中核であり、地図を効果的に活用するには、実際の市場状況に応じて地図の最下層を選択し、ビジネス ニーズをより適切に表示し、ビジネス シナリオを作成する必要があります。マップをデザインするときは、マップをクリーンで理解しやすい状態に保ちながら、データの階層と視覚化を考慮してください。LOCKGISはBaidu地図開発プラットフォーム技術インターフェースを採用し、市場の需要を解決します。
  2. データの取得と処理
    GIS アプリケーションは、大量の地理データと空間データを読み取り、処理する必要があります。したがって、LOCKGIS は、さまざまなデータ ソースからこれらのデータを取得し、アプリケーションで処理して保存するために、PHP + MySQL を使用して開発されています。
  3. GIS API
    GIS は、Baidu 地図開発 API と Tencent 地図開発 API (WeChat アプレット環境内) の両方を使用して、アプリケーションで地図、地理的および空間データの呼び出しを実現し、それらを視覚化します。
  4. データベース管理
    GIS アプリケーションでは、データベースを使用して地図データを保存および管理する必要があります。このシステムはオープンソースの MySQL データベースを使用し、実際のニーズに応じてデータ テーブルを設計し、データと戦術データを処理するための SQL クエリの使用を合理化します。
  5. 空間解析
    GIS アプリケーションは、Geospatial Analytics、Shapely、GDAL などの空間データ解析ライブラリを使用して空間解析を実行し、さまざまな問題を解決します。
  6. ジオコーディングとリバース ジオコーディング
    ジオコーディングは地理的位置を住所に変換し、リバース ジオコーディングは住所を地理的位置に変換します。これらの機能は、サードパーティの API とライブラリを通じて実現されます。ユーザーは 1 回のクリックだけで済みます。
  7. ユーザー インターフェイスの設計
    GIS アプリケーションのユーザー インターフェイスは、使いやすく強力である必要があります。ユーザー インターフェイス設計のベスト プラクティスを学び、JavaScript と HTML/CSS を使用して動的でインタラクティブなユーザー インターフェイスを構築します。

(3) 機能拡張

  • アイコンアノテーション機能をサポート
  • テキストラベル機能をサポート
  • サポート情報ポップアップウィンドウ機能
  • マップコールをサポートし、ナビゲーション機能を実現します
  • 座標収集機能をサポート
  • アノテーションフィルタリングクエリ機能をサポート
  • 位置補正機能をサポート

ビジネス ニーズに応じて、次のようなより複雑な機能を実現できます。

  • リッチテキスト情報ポップアップウィンドウボックスをサポート(画像、ビデオ情報表示)
  • POIの関心のある地点間の直接距離測定をサポート
  • ルート計画のサポート
  • 円形エリアのPOI検索をサポート

@リークタイムも時々あります

おすすめ

転載: blog.csdn.net/weixin_41290949/article/details/130644368